nohup命令
nohup 英文全称 no hang up,用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
语法格式
nohup Command [ Arg … ] [ & ]
参数说明:
Command:要执行的命令。
Arg:一些参数,可以指定输出文件。
&:让命令在后台执行,终端退出后命令仍旧执行。
示例详解
nohup python test.py >test.log 2>&1 &
&后台执行
&用于后台执行程序
标准输入输出
bash中:
0 代表STDIN_FILENO 标准输入(一般是键盘)
1 代表STDOUT_FILENO 标准输出(一般是显示屏,准确的说是用户终端控制台)
2 三代表STDERR_FILENO 标准错误(出错信息输出)
> 直接把内容生成到指定文件,会覆盖原来文件中的内容
>> 尾部追加,不会覆盖原有内容
< 将指定文件的内容作为前面命令的参数
2>&1用来将标准错误2重定向到标准输出1中。此处1前面的&就是为了让bash将1解释成标准输出而不是文件1。最后一个&,是让bash在后台执行。
结束运行
上面的示例命令会将命令放在后台运行,如果想要停止执行进程,可以使用ps查看进程,并用kill杀掉进程。
如:
ps aux | grep "python test.py"
kill -9 $pid
如果有任务创建了多个进程,可用如下命令一次性杀死:
ps aux| grep "python test.py" | grep -v grep | awk '{print $2}' | xargs kill -9
版权声明:本文为weixin_39253570原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。