1. nohup
使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:
nohup command &
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
nohup command > myout. file 2>&1 &
2. 后台运行 python 程序并记录
在Linux中,可以使用nohup
将脚本放置后台运行,如下:
nohup python myscript.py params1 > nohup.out 2>&1 &
但直接使用上面代码,无法在程序运行过程中查看Python中的print "computing"
输出结果,比如在每次循环中使用print
语句等。原因是python的输出有缓冲,导致nohup.out不能够马上看到输出。
解决方法:
- 使用-u参数,使得python不启用缓冲。
修改命令如下:
nohup python -u myscript.py params1 > nohup.out 2>&1 &
3. nohup 同时实现记录日志和屏幕输出
先使用以下命令开启程序后台运行:
nohup command > myout.file 2>&1 &
再使用如下命令跟踪文件内容的最后 10行
tail -F myout.file
参考: