我有一个python脚本,我正在运行,如下所示:
python3 ./bin/abc.py --log_file ./web/prr.log
现在我需要确保上述过程每3小时运行一次。以下是流程:
所以意思是,我需要确保我的进程每隔3个小时运行一次,所以我需要找到一种方法来每3小时后终止一次。我想在这里使用watch
命令,但不知道我怎么能在这里使用它。我正在使用Ubuntu 14。
注意:我无法修改python脚本,因此我需要从外部修改它。
答案 0 :(得分:1)
这似乎是crontab的理想用例。我写了2个bash脚本,每3个小时通过cron运行一次。如下所示:
final
为了终止进程,你可以使用任何正常的unix命令,因此在shell脚本中管道#ScriptA.sh
ifProcessRunning
KillProcess
#ScriptB.sh
ifProcessNotRunning
StartProcess
#CronTab
0,6,12,18 * * * * ScriptA.sh
3,9,15,21 * * * * ScriptB.sh
和运行kill可能会有效。
希望这会有所帮助 - 如果你想让我更多地充实你的东西,请发表评论!
答案 1 :(得分:-1)
您可以创建一个bash脚本来检查python脚本是否正在运行。如果是,它将终止脚本。如果没有,它将启动脚本。
#!/bin/bash
if pgrep -f <program name> > /dev/null
then
echo "Process is running. Killing"
kill -9 $(pidof <program name>)
else
echo "Process is not running. Starting"
python <location of the file>
fi