前言
当我们在Linux服务器直接运行程序,程序运行的时间较长时,程序经常会因为网络连接问题异常终止,这样我们运行的程序经常会半途而废。如果一直盯着程序运行又费时费力,所以,让程序自己在后台运行,就完美的解决了这个问题。下面介绍三个方法:
一、nohup命令
运行:
nohup python -u xxx.py >xxx.log 2>&1 &
运行成功会输出一个PID号
如果想关闭运行程序就可以:
kill -9 PID
详解: nohup指不断地运行,是no hang up的缩写,指不间断,不挂断。运行一个进程的时候,不想让其在你退出账号时关闭,即可用nohup。 python 是运行python文件 -u:python的输出又缓冲,导致xxx.log并不能够马上看到输出。-u参数,使得python不启用缓冲。可以即时看到输出 xxx.log保存输出的信息,运行程序时会生成这个xxx文件,里面保存这输出的信息。 2>&1 将错误信息重定向到标准输出 & 最后一个&符号代表后台运行
二、screen命令
常用screen命令:
screen -S name # 创建一个窗口
screen -ls # 查看当前已经创建的窗口
screen -d -r name # 回到名字为name的窗口
screen -X -S name quit # 关闭名字为name的窗口
三、tmux命令
tmux的话看这篇文章链接
四、总结
用以上三种方法,让程序在后台运行,本地连接中断不会影响正在运行的程序。
|