我已经设置了一个cron作业来每小时写一个PHP脚本。 然而,它似乎陷入了一个循环,并不断运行。 如果我在浏览器或通过命令行运行脚本,它工作正常。 我试过使用wget和命令行PHP,我得到同样的问题。
这是我的工作:
0, 9-18, * * 1-5 wget http://www2.lichfielddc.gov.uk/planning/cron.php
从分钟和小时的列中删除逗号。 指定超时和明确地重试
0 9-18 * * 1-5 wget -a /tmp/cron.log --tries=1 --timeout=90 http://www.example.com
您可能想要在testing期间添加日志,这是在示例中用-a完成的。
[在评论之后编辑:]
要知道这不是水手。 wget特定的,你可以用一个timout命令replace你的cron命令行,这个命令的持续时间比我在例子中添加的90secs超时长:
timeout --kill-after=110 --signal=15 110 wget -a /tmp/cron.log --tries=1 --timeout=90 http://www.example.com
wget应该在90秒后停止,如果没有, timeout在110秒后终止。 (如果不使用SIGKILL = 9,SIGTERM = 15就足够了)。