对于经常需要在后台连跑的任务,我们经常需要让他在后台运行,而一般我们打开一个窗口运行程序关闭窗口之后,这个运行的程序就会退出。这种情况下我们就需要用到setsid命令,我们先来看看setsid命令的用法:
setsid [options] program [arguments]
可以写一个脚本然后在后台运行
setsid python3 ./app.py
nohup HUP(hangup,挂断)
让提交的命令忽略 hangup 信号
nohup python3 run.py &
# ctrl+z #挂起到后台
# ctrl+d # 或者 关闭窗口 进程任然会在后台执行
setsid 在新session执行命令
setsid python3 app.py &
参考
[Linux] nohup/setsid/& 让进程在后台可靠运行
linux setsid 后台启动后,怎么关闭呢??
1 ps -aux | grep app.py
2 kill -9 24238
遇到问题
nohup python flush.py &
这样运行,生成了nohup.out文件,但是内容始终是空的,试了半天也不行。浪费了不少时间。
原因
python的输出又缓冲,导致out.log并不能够马上看到输出。
-u 参数,使得python不启用缓冲。
解决
nohup python -u flush.py > flush.log2 > &1 &
网友评论