我不知道这里是否是发布此文的合适地方,如果不是,请耐心等待。
我有一个 CRON,它在凌晨 03:00 执行 PHP 页面。
这个php页面,处理几个数据,平均需要1个小时才能完成,有时甚至更多。
问题
出于某种原因,我不希望这个 cron(php 页面)花费超过 1 小时来处理它所做的事情。
那么,如果该页面在凌晨 4:05 仍在执行,该如何终止呢?
谢谢
答案1
您可以使用命令实现这种行为timeout
。
下面是一个示例配置,如果进程运行时间超过一小时,它将终止该进程:
* * * * * /bin/timeout -s 2 3600 /path/to/your/script.sh
-s 2
是发送给进程的信号。2 是 SIGINT 信号
10
是该过程应该完成的时间范围。
这个 Serverfault 问题看起来和你的问题很相似,请查看:我可以限制 cronjob 的运行时间吗