我通常使用:nohup python -u myscript.py ./mylog.log # or should I use nohup 21 ? I never remember启动一个即使退出后仍想继续运行的后台Python进程,并且:ps aux |grep python# check for the r...

我通常使用:
nohup python -u myscript.py &> ./mylog.log & # or should I use nohup 2>&1 ? I never remember
启动一个即使退出后仍想继续运行的后台Python进程,并且:
ps aux |grep python
# check for the relevant PID
kill <relevantPID>
它可以工作,但是执行所有这些步骤很烦人.
我读过一些方法,您需要将PID保存到某个文件中,但这更加麻烦.
有没有一种干净的方法可以轻松启动/停止Python脚本?喜欢:
startpy myscript.py # will automatically continue running in
# background even if I log out
# two days later, even if I logged out / logged in again the meantime
stoppy myscript.py
或者可以将这很长时间的nohup python -u myscript.py& ./mylog.log&是用脚本的shebang编写的,这样我就可以用./myscript.py轻松启动脚本,而不用写冗长的nohup行?
注意:我正在寻找一两个线的解决方案,我不想为此操作编写专用的systemd服务.
解决方法:
据我所知,对于在远程系统上运行后台脚本的问题,只有两种(或三种或四种?)解决方案.
1)nohup
nohup python -u myscript.py > ./mylog.log 2>&1 &
1之二)
与上面相同,略有不同,因为它实际上将程序删除到了外壳作业列表中,从而阻止了SIGHUP的发送.
2)屏幕(或接近建议的tmux)
Here,您将找到屏幕的起点.
有关后台进程如何工作的详细说明,请参见此post.另一个相关的post.
3)重击
另一个解决方案是编写两个可以执行此任务的bash函数:
mynohup () {
[[ "$1" = "" ]] && echo "usage: mynohup python_script" && return 0
nohup python -u "$1" > "${1%.*}.log" 2>&1 < /dev/null &
}
mykill() {
ps -ef | grep "$1" | grep -v grep | awk '{print $2}' | xargs kill
echo "process "$1" killed"
}
只需将以上函数放入您的?/ .bashrc或?/ .bash_profile中,并将其用作普通的bash命令即可.
现在,您可以完全按照您的指示进行操作:
mynohup myscript.py # will automatically continue running in
# background even if I log out
# two days later, even if I logged out / logged in again the meantime
mykill myscript.py
4)守护进程
这个daemon module非常有用:
python myscript.py start
python myscript.py stop
本文标题为:使用nohup ps aux grep kill启动/停止后台Python进程


基础教程推荐
- Python调用百度AI实现人像分割详解 2023-08-04
- Python实现RLE格式与PNG格式互转 2022-09-02
- Windows在python 2.3上执行Windows程序的最佳方法是什么,例如在路径中带有多个参数和空格的ghostscript? 2023-11-13
- python-在Ubuntu 14.04上构建Pylucene(可信任的Tahr) 2023-11-12
- Python中优雅处理JSON文件的方法实例 2023-08-04
- 在Windows的Emacs中执行当前的Python脚本 2023-11-13
- 如何利用python turtle绘图自定义画布背景颜色 2023-08-04
- Python实现检测照片中的人脸数 2022-08-30
- pandas学习之df.set_index的具体使用 2022-08-30
- Python实现在图像中隐藏二维码的方法详解 2022-10-20