Linux 中 nohup 实现后台运行指定命令并重定向命令输出到指定文件【对命令各部分逐步分解说明】

nohup 命令的使用

nohup 命令的使用语法:

bash 复制代码
nohup 要执行的命令

nohup (no hang up) 命令,可以让我们要执行的命令不被挂起,即可以使我们执行的命令忽略输入和挂起信号继续运行 ,即使命令行终端关闭也会继续运行要执行的命令。

如果我们使用 nohup 执行命令,那么输出结果将不会输出到终端,默认情况下,nohup 命令会将输出结果写入你执行 nohup 命令时所在目录的 nohup.out 文件中,如果你执行 nohup 命令时所在目录的 nohup.out 文件禁止写入数据,那么 nohup 命令的输出结果会自动输出到 $HOME/nohuo.out 文件(当前登录用户家目录中的 nohup.out 文件)中

此时,我们关闭执行 nohup 命令的终端,打开新的终端


此时,我们如果要停止使用 nohup 命令执行的命令,只能通过杀死相应的进程实现

nohup 命令与后台运行命令

我们使用 nohup 执行要执行的命令,只能实现忽略输入和挂起信号让要执行的命令继续运行,此时,使用 nohup 命令执行的终端仍然被占用,如果我们系统当前终端不被占用,可以继续运行其他命令,那么我们只需要在 nohup 执行要执行的命令的最后添加 **&** 就可以了,表示在后台运行要执行的命令

同样的,此时,如果我们要停止使用 nohup 命令执行的命令,需要通过杀死进程实现

nohup 执行要执行的命令并将命令的输出重定向到指定文件

在上述 nohup 的使用中,我们只能将要执行的命令的控制台输出写入到执行 nohup 所在的目录下的 nohup.out 文件中。

如果我们要实现将使用 nohup 执行要执行的命令的输出写如指定的文件中,这里的输出包括标准输出和标准错误输出,即把使用 nohup 执行的命令的输出和报错输出都写入指定的文件中。

那么,我们可以使用如下命令实现

bash 复制代码
nohup 要执行的命令 > 要执行的命令的输出写入的文件 2>&1 &

nohup:使我们要执行的命令忽略输入和挂起信号继续运行
> 要执行的命令的输出写入的文件:指定要执行的命令的输出要重定向写到哪个文件中
2>&1:将标准错误输出重定向到标准输出,由于要执行命令的标准输出会重定向写入到指定文件中,所以标准错误输出也会重定向写入到指定文件中

  • 2:标准错误输出文件描述符
  • 1:标准输出文件描述符

&:实现要执行的命令的后台运行

bash 复制代码
nohup ping www.baidu.com >/tmp/log.out 2>&1 &



相关推荐
染夕陌木4 分钟前
RPC/服务调用框架中“方法无法应用到给定类型”错误的通用排查指南
java·ide·rpc
大大杰哥7 分钟前
String常用方法
java
楼兰公子13 分钟前
读取rpi摄像头
linux·服务器·算法
李景琰18 分钟前
Debian12安装配置Mqtt之EMQX
linux·运维·服务器
测试员周周20 分钟前
【AI测试系统】第1篇:LangGraph 实战:用 State Graph 搭建 AI测试流水线(4 步编排 + RAG 增强 + 完整代码)
linux·windows·python·功能测试·microsoft·单元测试·多轮对话
AI人工智能+电脑小能手24 分钟前
【大白话说Java面试题】【Java基础篇】第20题:HashMap在计算index的时候,为什么要对数组长度做减1操作
java·开发语言·数据结构·后端·面试·哈希算法·hash-index
不做无法实现的梦~26 分钟前
PX4 机载电脑 Linux 环境安装、串口、网络、ROS 完整配置
linux·运维·网络
嵌入式×边缘AI:打怪升级日志26 分钟前
嵌入式Linux开发(了解交叉编译工具链的组成)
java·linux·运维
接着奏乐接着舞31 分钟前
3D Tiles tileset.jso 数据格式
运维·服务器·3d
李小白2020020232 分钟前
RK3568 linux6.1 死机
linux·运维·服务器