关于重新运行后台程序nohup python3的办法(一)
前期,我做了一个需要在VPS(centos系统)后台运行的程序flask_telethon_web.py,其中有关于session的设置,要经常变动,所以,就需要改变代码后重新运行。
现在记录一下方法。
后台运行的命令为:
nohup python3 flask_telethon_web.py > flask.log 2>&1
重新运行需要如下步骤:
(一)找到旧进程
运行以下命令查看正在运行的 flask_telethon_web.py程序:
ps -ef | grep flask_telethon_web.py
会看到类似输出:
root 1234 1 0 10:00 ? 00:00:02 python3 flask_telethon_web.py
root 5678 4321 0 10:05 pts/0 00:00:00 grep --color=auto flask_telethon_web.py
这里 1234 就是正在运行的 Flask 后台进程的 PID(进程号)。
(二)终止旧进程
使用 kill 命令终止它:
kill 1234
若程序比较顽固(比如没能立即退出),可以使用:
kill -9 1234
(三)确认已停止
再次执行:
ps -ef | grep flask_telethon_web.py
如果只剩下 grep 那一行,说明程序已经完全停止。
(四)重新启动新版本
然后重新运行新代码:
nohup python3 flask_telethon_web.py > flask.log 2>&1 &
这样新版本就会在后台运行,并将日志写入同一个 flask.log 文件。
(五)查看实时日志(也可以不查看)
实时查看日志输出:
tail -f flask.log
实操截图:
当然,还有更好的解决办法,那就是把 nohup 方式改成一个真正的 systemd 服务配置,以后就可以用sudo systemctl restart flask_telethon就能重新加载新代码了,留在下篇讲解。