Monit - остановите обслуживание и остановитесь?

У меня есть демон, который запускается через обычные скрипты init.d/service.

У меня есть monit running, который гарантирует, что эти демоны перезагружаются, если они сбой.

У меня есть запрос, что "service foo stop" должен остановить деамон, и поскольку он был явно остановлен, а не сбой, monit не должен перезапускать его. Как я могу достичь этого с помощью monit?

Я мог бы использовать сервис script stop() для вызова monit unmonitor, но это кажется круговым и неправильным.

Спасибо, Dave

Ответ 1

Я думаю, вы должны использовать monit stop foo вместо service foo stop. Таким образом, Monit знает, что служба не сработала - и не перезапустит ее.

Ответ 2

Для этого есть параметр MODE:

Monit поддерживает три режима мониторинга на услугу: активный, пассивный и ручной.

Синтаксис:

MODE В активном режиме (по умолчанию) Monit будет активно отслеживать обслуживание, а в случае возникновения проблем повышать оповещения и/или перезапускать службу.

В пассивном режиме Монит будет пассивно контролировать службу и будет поднимать предупреждения, но не попытается устранить проблему, выполнив запуск, останов или перезапуск.

В ручном режиме Monit войдет в активный режим только в том случае, если служба была запущена через Monit

Отсюда: https://mmonit.com/monit/documentation/monit.html#SERVICE-MONITORING-MODE

Таким образом, если вы управляете сервисами через runit или upstart и хотите использовать monit для предупреждений и панелей мониторинга, вы просто устанавливаете для всех таких сервисов MODE - passive.

Например:

check process heka with pidfile /etc/sv/myservice/supervise/pid
    start program = "/usr/bin/sv start myservice"
    stop program = "/usr/bin/sv stop myservice"
    mode passive

Если вам нужно включить/отключить это онлайн, но не надолго - обратитесь к другим людям, они в порядке.

Ответ 3

Модель: Monit запускается как служба init.d и поэтому управляется (stop/start/restart) с помощью init.d. (Другие, пожалуйста, если я ошибаюсь). Приложения, требующие контроля, обрабатываются monit.

Следовательно, такие приложения должны контролироваться только, то есть останавливать/запускать/перезапускать через monit. monit