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

настроить monit в Linux для мониторинга процесса, а затем перезагрузить

Я хочу, чтобы monit контролировал мою службу, и после ее остановки я хочу, чтобы компьютер перезагрузился. У процесса нет определенного порта, который я могу отслеживать. Вот что я сделал:

check process chat with pidfile /var/run/chat.pid
start program = "/etc/init.d/chat start"
stop program = "/etc/init.d/chat stop"
if changed ppid then exec /sbin/reboot

Я пробовал все, но это только перезапускал мою службу.

Любое предложение.

Я думаю, что ppid может относиться к родительскому идентификатору, который всегда будет 1 для службы, поэтому используйте

check process chat with pidfile /var/run/chat.pid
start program = "/etc/init.d/chat start"
stop program = "/etc/init.d/chat stop"
if changed pid then exec /sbin/reboot

вместо. Я тестировал это с помощью некоторой локальной службы, и у меня это работает, перезапуск службы приводит к перезагрузке сервера. (хорошо ли это вообще - другой вопрос ... ;-)

со страницы руководства ....

ПИД-ТЕСТИРОВАНИЕ

Monit может проверить идентификационный номер процесса (pid) на наличие изменений. Этот тест является неявным, и по умолчанию Monit отправит предупреждение в случае сбоя.

Синтаксис оператора pid: IF CHANGED PID [[] CYCLES] THEN action action - это выбор «ALERT», «RESTART», «START», «STOP», «EXEC», «MONITOR» или «UNMONITOR». .

Этот тест полезен для обнаружения возможных перезапусков процесса, произошедших в промежутке времени между двумя циклами тестирования Monit. В случае, если перезапуск был быстрым и процесс обеспечивает ожидаемое обслуживание (т.е. все тесты прошли успешно), вы получите уведомление о том, что процесс был заменен.

Например, демон sshd может перезапускаться очень быстро, поэтому, если кто-то изменит его конфигурацию и выполнит перезапуск sshd вне контроля Monit, вы получите уведомление о том, что процесс был заменен новым экземпляром (или вы можете при желании выполнить некоторые другие действия, такие как превентивная остановка sshd ).

Другой пример - MySQL Cluster, у которого есть собственный сторожевой таймер с возможностью перезапуска процесса. Вы можете использовать Monit для избыточного мониторинга.

Пример:

проверьте процесс sshd с помощью pidfile /var/run/sshd.pid, если изменился pid, затем exec "/ my / script"

PPID ТЕСТИРОВАНИЕ

Monit может проверить идентификационный номер родительского процесса (ppid) процесса на наличие изменений. Этот тест является неявным, и по умолчанию Monit отправит предупреждение в случае сбоя.

Синтаксис оператора ppid: IF CHANGED PPID [[] CYCLES] THEN action action - это выбор «ALERT», «RESTART», «START», «STOP», «EXEC», «MONITOR» или «UNMONITOR». .

Этот тест полезен для обнаружения изменений родительского процесса.

Пример:

проверьте процесс myproc с помощью pidfile /var/run/myproc.pid, если изменился ppid, затем exec "/ my / script"

Отслеживать произвольные процессы извне очень сложно; И наоборот, управлять запущенными вами процессами несложно.

Я предлагаю вам изучить запустить его, альтернативный демон инициализации для серверов.