我的目标是每天(周五和周六除外)每天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
我尝试了this解决方案,该解决方案通过终端运行,但在cron中不起作用(当我在终端中键入命令时,它立即关闭了脚本,但是当我将其放在crontab上时,它什么也没做)
答案 0 :(得分:1)
杀死工作:
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
使用简单的正则表达式模式,我们可以终止启动过程,
cron或用户:
0 18 * * 0,1,2,3,4 /usr/bin/pkill -f 'python.*MotionDetector.py'
仅cron
0 18 * * 0,1,2,3,4 /usr/bin/pkill -f ^'/home/pi/venv/bin/python /home/pi/MotionDetector.py'