У меня есть требование добавлять службы для динамического мониторинга. Итак, я копирую файл мониторинга службы в /etc/monit.d/ (который включен в / etc / monitrc) и перезагружаю monit.
cp <service-monit-file> /etc/monit.d/
monit reload
monit monitor <service-name>
Теперь команды мониторинга работают в фоновом режиме. Так, monit monitor
команда не работает (служба не найдена) как monit reload
кончил не сразу.
Итак, какой подход можно предпринять, чтобы monit monitor
вызывается только после monit reload
отделка. я пытался monit -I reload
, но результат тот же.
Проверка журнала мониторинга с помощью tail и прерывание при появлении «перезагруженной» строки также невозможна, поскольку tail будет выводиться на стандартный вывод, что недопустимо.
Я не могу воспроизвести эту проблему (у меня другая ошибка), но я думаю, что monit monitor
в вашем случае команда не работает с ненулевым возвращаемым значением. Тогда я бы сделал:
while ! monit monitor <service-name> 2>/dev/null
do
sleep 1
done
Примечание: вы можете добавить механизм тайм-аута, чтобы избежать бесконечного while
петля.