环境:vps,centos7,python3。
近期写了个python程序,用青龙面板在centos上运行。程序中有while无限循环,但是我在青龙中设置了定时任务(每隔半小时运行一次),于是造成了进程中有多个python3 xxx.py程序在运行。
任务:结束这些进程。
一、首先,在青龙面板中停止并删除定时任务。
二、远程登录VPS。
(1)查看运行的python进程。命令如下:
ps -ef | grep python3
结果为下图(举例):
第一个红色箭头是进程的PID,第二个红色箭头是进程的PPID。
(2) 结束进程
kill -9 PID
(3)因为每半小时运行一次无限循环的python程序(example.py),所以会有多个PID,想批量结束。
kill $(ps aux | grep 'python3 example.py' | grep -v grep | awk '{print $2}')
参考文章:[linux] 怎么批量kill掉挂载运行python 某个.py文件的端口_如何批量kill执行中的python-CSDN博客
Linux ps 命令 | 菜鸟教程
Linux kill 命令 | 菜鸟教程
(4)进行上面的操作后,不知道为何,还是没有批量kill到好几个python3 example.py进程,于是最后,我重启了VPS。
shutdown -r now 立刻重启(root用户使用)
重新登陆后,就没有python3 example.py进程了。
三、重新设置青龙的定时任务,设置成一年执行一次
crontab写法如下:
0 1 1 1 *
有一个很好的ToolTT在线工具箱,可以在页面上测试定时的写法,参考文章如下:
在线crontab 每月1号凌晨1点执行一次解析验证 - ToolTT在线工具箱