Linux nohup命令
Linux nohup命令
nohup英文全称为 no hang up,用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行.
nohup命令,在默认情况下(非重定向时),会输出一个名叫nohuo.out的文件到当前目录下,如果当前目录的nohup.out文件不可写,则输出重定向到 $HOME/nohup.out
文件中.
语法格式
nohup Command [Arg] [&]
参数说明
Command: 要执行的命令
Arg: 一些参数,可以指定输出文件
&: 让命令在后台运行,终端退出后命令仍旧执行
基础用法示例
以下命令在后台执行root目录下的test.sh脚本:
nohup /root/test.sh &
在终端看到以下的输出说明运行成功:
appending output to nohup.out
这时我们打开root目录,可以看到生成了nohup.out文件
如果要停止运行,需要用以下命令查找到nohup运行脚本到PID,然后用kill命令来杀死进程:
ps -aux | grep "test.sh"
参数说明
- a: 显示所有程序
- u: 以用户为主的格式来显示
- x: 显示所有程序,不区分终端机
另外,也可以使用 ps -def | grep "test.sh"
命令来查找
找到PID后,就可以用kill命令杀死进程:
kill -9 进程号PID
进阶用法示例
以下命令为在后台执行root目录下的test.sh脚本,并重定向输入到log.txt文件中:
nohup /root/test.sh > log.txt 2>&1 &
参数说明
> log.txt 2>&1
: 将标准错误2重定向到标准输出&1.标准输出&1再被重定向输出到log.txt中
关于数字2和1:
- 0-stdin 标准输入
- 1-stdout 标准输出
- 2-stderr 标准错误输出