Назад | Перейти на главную страницу

Постоянно проверяйте, запущен ли скрипт php

Можно ли настроить мой CentOS VPS для постоянной проверки, чтобы убедиться, что php-скрипт запущен? В настоящее время я использую метод php screen, который отлично работает, но если он каким-то образом прерывается, как я могу начать его резервное копирование?

Я попытался добавить команду в /etc/rc.d/rc.local, но сегодня утром проверил, скрипт не запускается.

Эта задача хорошо подходит для монитора процесса, такого как Монит.

Конфигурация мониторинга будет намного проще с Monit, если ваш процесс PHP создает файл PID. Доступна статья, описывающая, как использовать Monit для проверки и запуска процессов PHP. Вот.

для этого можно использовать supervisord. Это приложение на Python, но очень простое в настройке. Supervisord предоставляет в своей конфигурации директиву автоматического перезапуска, которая перезапустит сценарий в случае его смерти.

вы можете прочитать об этом на http://phpadvent.org/2009/daemonize-your-php-by-sean-coates

Эта задача хорошо подходит для внешнего мониторинга, такого как AlertFox, Pingdom, Monitis, ... (все они имеют бесплатные планы).

Подход всегда один и тот же: вы создаете страницу PHP, которая проверяет, запущен ли сценарий PHO, и служба мониторинга периодически вызывает его:

http://blog.alertfox.com/2011/01/monitoring-disk-space-and-other-status.html

Вы можете написать сценарий проверки, который анализирует вывод ps в поисках вашего экземпляра php. Если он существует, ваш скрипт должен завершиться без вывода сообщений; в противном случае ваш скрипт должен запустить вашу php-программу, а затем написать сообщение на стандартный вывод, предупреждающее, что процесс мертв и его необходимо перезапустить.

Затем добавьте свой скрипт проверки в свой crontab (например,)

MAILTO=you@domain.com
*/5 * * * * /path/to/checking-script.sh

В этом примере ваш сценарий проверки запускается каждые 5 минут. Если процесс php мертв и ваш проверяющий скрипт перезапускает его, он также выведет вышеупомянутое сообщение, которое будет отправлено вам по электронной почте (в виде предупреждения).