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

monit reload - как узнать, когда она закончилась?

У меня есть требование добавлять службы для динамического мониторинга. Итак, я копирую файл мониторинга службы в /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 петля.