Как сделать автоматический рестарт при ошибке на сайте php?
Всем привет. На моем сайте периодически появляется критическая ошибка "fatal error: Cannot access property Response::$headers in", которая блокирует весь сайт.
Что я хочу. Крон должен проверять сайт каждые, допустим 5 минут. В случае проверки он обнаруживает данную ошибку, то должен произвести перезапуск php сервиса. Кто подскажет, как это можно сделать или есть готовые решения?
В Kubernetes есть readinessProbe, которая может дёргать URL в ожидании 200-го кода. Если не 200, то автоматически рестартит Pod с приложением. Но я бы не рекомендовал такое вытворять - надо исправлять ошибку. Вообще не понимаю, как может в php заблокировать весь сайт целиком.
Это решение не имеет смысла, потому что в 99% случаев php отрабатывает в режиме "запрос-ответ", он не работает как демон, он "умирает" после каждого запроса. Ваш запрос будет отдавать всегда 200 в случае, если Вы зашьете в планировщик правильный запрос и всегда 500, если зашьете неправильный.
Гораздо продуктивнее будет найти гарантированные шаги воспроизведения и пофиксить ошибку, судя по контексту там как-то криво добавляются заголовки к ответу по этому урлу (экшену контроллера).
Скорее всего тебе нужно создать bash скриптик который периодически будет дергать твой крон который будет проверять в логах веб сервера наличие данной ошибки, и если она присутствует то перезапускать твой веб сервер.