赞
踩
nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
语法格式:
nohup Command [ Arg … ] [ & ]
参数说明:
示例命令代码:
以下命令在后台执行 查看当前路径下的文件内容:
nohup cat text.txt &
在终端如果看到以下输出说明运行成功:
nohup: ignoring input and appending output to 'nohup.out'
这时可以看到当前文件夹下生成了 nohup.out 文件。

如果要停止运行上面执行的命令,查找到 nohup 运行脚本到 PID,然后使用 kill 命令来删除:
ps -aux | grep text.txt
参数说明:
另外也可以使用 ps -def | grep text.txt 命令来查找。

找到 PID 后,使用 kill PID 来删除。
kill -9 进程号PID
在后台执行 查看当前路径下的文件内容,并重定向输入到 text.log 文件:
nohup cat text.txt > text.log 2>&1 &

2>&1 解释:
将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 text.log 文件中。
有时候用nohup执行python程序时,print()无法输出到日志中。如下命令:
nohup python test.py > nohup.out 2>&1 &
有时候发现nohup.out中显示不出来python程序中print的东西。这是因为python的输出有缓冲,导致nohup.out并不能够马上看到输出。
python 有个-u参数,使得python不启用缓冲。改为下述命令便可以啦!
nohup python -u test.py > nohup.out 2>&1 &
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。