我可以限制 cronjob 的运行时间吗

我可以限制 cronjob 的运行时间吗

我有一个每小时运行一次的 cronjob,有时运行时间太长,有什么方法可以设置最大运行时间,如果超过该运行时间,该作业就会被终止?

这是在 Ubuntu 10.04 服务器上。

谢谢,jebw

答案1

尝试该timeout命令。例如:

0 * * * * timeout -2 3540 /path/to/your_command.sh

如果 59 分钟内仍未完成,将会向您的命令发送 SIGINT。

答案2

不。我们的方法是制作一个带有锁定文件的脚本,并让脚本在再次开始运行之前检查该锁定文件,这样它可以检查它是否已在运行并决定是否运行,是否等待另一个结束或是否在运行之前终止另一个。

锁文件只是一个空文件或一个将其他脚本PID保存在某处的文件,例如/var/run/var/lock

答案3

cakemox 的答案是最好的。否则,只需将 pid 放入文件中,或者在一分钟前在另一个 cronjob 上使用 killall 来终止该进程。

相关内容