Если на Drupal 7 перестал работать cron

*

Симптомы:

Не происходит проверка версий, не происходит подача sitemap.xml.

/admin/reports/status настоятельно требует прогнать cron вручную.

Попытки прогнать вручную заканчиваются белым экраном.

Проверка логов (admin/reports/dblog) не сообщает ничего нового, кроме уже и так известного факта о неудачном запуске cron.

После долгого ковыряния в носу в настройках и курения гугла возник вариант, что хрон застрял из-за неверного значения переменных cron_semaphore и cron_last в таблице variable в базе данных. Доктор прописал эти переменные удалить (после первого же удачного запуска cron они восстановятся сами). Не помогло, потому как удачного запуска cron организовать не получилось. Теперь /admin/reports/status радовал сообщением, что последний запуск cron и проверка всех обновлений производились не несколько дней, а аж 43 года с хвостиком тому назад.

Вторая порция курения гугла принесла идею отключить временно semaphore вообще, прогнать cron, а потом снова подключить. По здравом размышлении и ясно представив себе переписку с хостером насчет подвешенного сервера, от этой идеи я решил отказаться.

Наконец, покурив еще гугла, я решил использовать модуль cron_debug для выявления процесса, который вешает cron. В моем хроне оказалось более десятка процессов. Прогоняя их по-одному, виновного обнаружили за две-три минуты. Им оказался модуль Backup and migrate prune, отвечающий за автоматическое удаление старых бэкапов. У этого модуля с месяц назад имел место апдейт, ну вот после апдейта все и началось. Виновный был приговорен к деинсталляции, а аффтору его была направлена нота протеста.

После расстреляния виновного выглянуло солнышко, зацвели сады и все стало хорошо.

Теги:

Новые комментарии