每次完成时安排一个 cronjob

每次完成时安排一个 cronjob

我有一个每 48 小时运行一次的 cronjon。但理想情况下,我希望它必须在停止后立即开始运行。这可以做到吗?这是一个由 py​​thon 命令组成的 sh 脚本。我使用的是 Linux Mint 13。

谢谢

答案1

您可以做的一件事是无限循环运行 python 命令,然后使用 cron 运行一次脚本。这样,每次完成时脚本都会再次运行:

#!/bin/bash
while true; do  ## Enter infinite loop
   sleep 5;   ## Wait for 5 seconds
   python -c 'print("hello world")'  ## Run your python command
done 

例如,如果您将该脚本另存为~/run_python.sh并使其可执行(chmod +x ~/run_python.sh),则可以使用前缀将其设置为在系统启动时运行一次@reboot。将此行添加到您的 crontab:

@reboot ~/run_python.sh

因此,BASH 脚本将在系统启动时启动,等待 5 秒,运行 python 命令,然后无限期地继续执行。

实现此目的的更好的方法(或者至少更 *nixy 的方法是将脚本添加到/etc/init.d

相关内容