使用cron停止/终止Python脚本

2024-10-04 05:22:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是每天(除了星期五和星期六)在10:00运行python脚本,并在18:00之前终止它。在

我在crontab中添加了以下命令,但是第二个命令不起作用。在

0 10 * * 0,1,2,3,4 /home/pi/MotionDetector.py
0 18 * * 0,1,2,3,4 /home/pi/MotionDetector.py killall -9 MotionDetector.py 

使用Linux 2.7.9

我尝试了通过终端而不是cron中工作的this解决方案(当我在终端中键入命令时,它立即关闭了脚本,但当我将它放在crontab上时,它什么也没做)


Tags: py命令脚本终端目标home键入linux
1条回答
网友
1楼 · 发布于 2024-10-04 05:22:04

因为杀了工作:

0 18 * * 0,1,2,3,4 /usr/bin/pkill -f MotionDetector.py

pkill按名称终止进程。虽然默认的搜索条件是通过进程的全名来查找进程,-f参数允许您按进程名称中的任何部分进行搜索。在


更新了解决方案以说明@håken-lid提出的方案:

当脚本由cron或用户执行时,进程名的格式为:
cron/home/pi/venv/bin/python /home/pi/MotionDetector.py
用户python MotionDetectory.py

使用简单的regex模式,我们可以终止启动的进程

  • cron或用户:

    0 18 * * 0,1,2,3,4 /usr/bin/pkill -f 'python.*MotionDetector.py'

  • 只有克朗

    0 18 * * 0,1,2,3,4 /usr/bin/pkill -f ^'/home/pi/venv/bin/python /home/pi/MotionDetector.py'

相关问题 更多 >