Судя по фрагменту кода Monit, похоже, что вам нужно изменить или добавить операторы цикла в раздел вашего процесса. См. Соответствующую документацию здесь и здесь .
Похоже, вы можете настроить тесты службы на выполнение каждого цикла без указания времени ожидания. Также загляните на свою домашнюю страницу monit по адресу http: // hostname: 2812 . Проверьте страницу соответствующей услуги и посмотрите на
поле «Существование». Ваше значение по умолчанию должно выглядеть так:
If doesn't exist 1 times within 1 cycle(s) then restart else if succeeded 1 times within 1 cycle(s) then alert
У меня была точно такая же проблема, когда, несмотря на перезапуск monit, он отказывался контролировать после тайм-аута. Наконец выяснилось, что пришлось удалить файл состояния монитора ( /var/.monit. state
) и перезапустите monit, чтобы снова запустить мониторинг всех программ.
Я бы просто использовал задание cron, которое запускало бы monit start servicename
с нужными интервалами. Конечно, вы можете использовать группы для более точного управления.
После некоторого покопания выяснилось, что Monit хранит данные системного мониторинга в файле «состояния». И этот файл «состояния» отслеживает, какие сервисы отслеживаются / не отслеживаются.
Так что, хотя это немного «грубая сила», это определенно работает. Если служба становится «неконтролируемой» из-за чего-то вроде тайм-аута, просто удалите файл состояния Monit из системы следующим образом:
sudo rm /var/lib/monit/state
А затем перезапустите Monit, как это, и все должно быть хорошо:
sudo service monit restart