Я настроил задание 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
Вы можете добавить журнал во время тестирования, это делается с помощью -a
в примере.
[Изменить после комментария:]
Чтобы узнать, что это не что-л. wget, вы можете заменить свою командную строку cron на команду timeout, которая имеет большую продолжительность, чем тайм-аут 90 секунд, который я добавил в моем примере:
timeout --kill-after=110 --signal=15 110 wget -a /tmp/cron.log --tries=1 --timeout=90 http://www.example.com
wget должен остановиться через 90 секунд, если нет, timeout
завершает его через 110 секунд. (сигнала SIGTERM = 15 должно быть достаточно, если не использовать SIGKILL = 9).