前言
我们在运行程序时,有的程序花费时间较多,但我们总不能一直看着程序运行,所以我在这里记录一下,Linux服务器如何后台运行我们的脚本程序
nohup方式
我们登录到服务器,切换至目录到我们所要运行的程序下
例如:这里我的程序是main.py
然后输入以下命令:
nohup python3.6 -u main.py > output.log 2>&1 &
注意,这里我的是python3.6,你们的可能是python或者python3
解释一下:
nohup
:忽略终端关闭信号;python3
表示要运行的 Python 解释器版本,这里是 Python 3.6。-u
参数表示以unbuffered
模式运行 Python,即输出立即刷新,而不是缓存后一起输出;main.py
是要运行的 Python 代码文件名。>
重定向标准输出;output.log
:指定日志文件名;2>&1
:将标准错误输出重定向到与标准输出相同的位置;&
:使命令在后台运行。
按下 Enter 键执行命令后,您会看到一个输出类似于 nohup: ignoring input
的消息。这意味着您的 Python 代码已经在后台启动
可以通过以下命令查看运行信息
cat output.log
验证脚本是否在后台运行
ps aux | grep main.py
可以看到我们的程序确实是在后台运行
结束后台任务
pkill -f main.py
screen方式
安装
yum install -y screen
新建一个screen
screen -S erl_dqn_screen
这样会新开一个窗口,切换到你的程序目录,然后执行命令即可
python xxx.py
然后ctrl+a+d
跳出screen,这时你的代码会在后台运行
如果想要回到Screen
可以先通过以下命令,查看你当前的screen
screen -ls
然后
screen -d -r xxx
xxx是红方框的内容
然后就可以看到后台的输出
关闭方式
# 如果在窗口中
exit
# 如果不在窗口中(即窗口无法连接了)
screen -X -S id(窗口id) quit