使用nohup ps aux grep kill启动/停止后台Python进程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用nohup ps aux grep kill启动/停止后台Python进程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1831字,纯文字阅读大概需要3分钟。
内容图文
![使用nohup ps aux grep kill启动/停止后台Python进程](/upload/InfoBanner/zyjiaocheng/949/3e159ffe7689471796131a7bb06cfa2d.jpg)
我通常使用:
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进程全部内容,希望文章能够帮你解决使用nohup ps aux grep kill启动/停止后台Python进程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。