我有一个 python 脚本,我正在运行它,如下所示:
python3 ./bin/abc.py --log_file ./web/prr.log
现在我需要确保上述进程每 3 小时运行一次。流程如下:
- 如果进程已经在运行,则终止该进程并休眠 3 小时。
- 休眠 3 小时后,如果进程没有运行,请通过执行上述 python 命令重新启动进程,然后休眠 3 小时。
- 重复上述过程。
所以意思是,我需要确保我的进程每隔 3 小时运行一次,所以我需要找到一种方法在每 3 小时后终止该进程。我想在这里使用 watch
命令,但不确定如何在这里使用它。我正在使用 Ubuntu 14。
注意:我无法修改 python 脚本,因此我需要从外部执行此操作。
最佳答案
这似乎是 crontab 的理想用例。我会编写 2 个 bash 脚本,通过 cron 每 3 小时运行一次。所以像下面这样:
#ScriptA.sh
ifProcessRunning
KillProcess
#ScriptB.sh
ifProcessNotRunning
StartProcess
#CronTab
0,6,12,18 * * * * ScriptA.sh
3,9,15,21 * * * * ScriptB.sh
要终止进程,您可以使用任何普通的 unix 命令,因此通过管道传输 ps aux
并在 shell 脚本中运行kill 就可以了。
希望这对您有所帮助——如果您希望我进一步充实内容,请发表评论!
关于python - 每隔 x 小时运行一个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47424885/