守护进程:
仅供学习交流i使用;
这里将介绍2个工具:1.screen;2.nohup;
1.screen
(1)安装screen;
apt-get update && apt-get install -y screen
(2)使用方法:
①创建screen终端:终端中直接screen命令,然后在出来的界面中enter即可;
②退出screen终端:ctrl+a+d(但该终端将一直存于后台);
③查看有哪些screen终端在后台运行:screen -ls;
④进入指定screen终端:首先screen -ls查看有哪些id;再screen -r id即可;
⑤删除该screen终端:进入后ctrl+d即可退出;
注:
①如有中文乱码;先执行下述命令,再screen进入终端;
echo "defencoding GBK" >> ~/.screenrc
echo "encoding UTF-8 GBK" >> ~/.screenrc
②若screen乱码,则使用-U参数创建终端;
screen -U # 新建
screen -U -r xxx # 恢复
2.nohup直接挂后台
使用nohup命令直接执行程序,程序会直接在后台运行;
需配合2种方式,1)记录运行日志,方便后续检查;2)若nohup执行错误,需要使用pstree查看正在执行的进程id,再使用kill将对应进程终止;
1)记录日志,使用>重定向;如:
# 会将该程序后台执行,并将其输出写入train.log文件中;
nohup python train.py > train.log 2>&1 &
# 实时查看日志
tail -f train.log
2)假设nohup已执行,但想修改代码后重新执行;
# 1.找到刚才的进程id
pstree -ap 用户名
# 2.kill掉找到的进程id
kill -9 id
# 3.再查看有没有多余程序在后台执行即可