Ответ 1
Я думаю, вы должны использовать monit stop foo
вместо service foo stop
. Таким образом, Monit знает, что служба не сработала - и не перезапустит ее.
У меня есть демон, который запускается через обычные скрипты init.d/service.
У меня есть monit running, который гарантирует, что эти демоны перезагружаются, если они сбой.
У меня есть запрос, что "service foo stop" должен остановить деамон, и поскольку он был явно остановлен, а не сбой, monit не должен перезапускать его. Как я могу достичь этого с помощью monit?
Я мог бы использовать сервис script stop() для вызова monit unmonitor, но это кажется круговым и неправильным.
Спасибо, Dave
Я думаю, вы должны использовать monit stop foo
вместо service foo stop
. Таким образом, Monit знает, что служба не сработала - и не перезапустит ее.
Для этого есть параметр 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
Если вам нужно включить/отключить это онлайн, но не надолго - обратитесь к другим людям, они в порядке.
Модель: Monit запускается как служба init.d и поэтому управляется (stop/start/restart) с помощью init.d. (Другие, пожалуйста, если я ошибаюсь). Приложения, требующие контроля, обрабатываются monit.
Следовательно, такие приложения должны контролироваться только, то есть останавливать/запускать/перезапускать через monit. monit