如果通过 Cron 运行的 php 页面仍在执行,如何终止它

如果通过 Cron 运行的 php 页面仍在执行,如何终止它

我不知道这里是否是发布此文的合适地方,如果不是,请耐心等待。

我有一个 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 的运行时间吗

相关内容