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 标准错误输出

转载声明

转载自:
https://www.runoob.com/linux/linux-comm-nohup.html

posted @ 2022-10-03 23:19  yukina~  阅读(157)  评论(0编辑  收藏  举报