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

Monit - Как добавить задержку между остановкой и запуском

Я хотел бы знать, можно ли добавить задержку между методами остановки / запуска. В основном это связано с тем, что требуется задержка не менее 10 секунд для закрытия всех открытых соединений сокетов и корректного закрытия серверного сокета для повторного запуска.

Это мой сценарий мониторинга

set logfile /var/log/monit.log
check process test.sh with pidfile /home/svcs/test/pid/app.pid
start program = "/etc/init.d/test.sh start" with timeout 60 seconds
stop program = "/etc/init.d/test.sh stop" with timeout 60 seconds
if failed host xx.xx.com port 443
type tcpSSL protocol http with timeout 15 seconds retry 3 then restart
alert xx@xx.com

Спасибо

Команда

sleep

за которым следует значение в секундах.

Так что добавьте sleep 10 между строк, и это должно сработать.

Обратите внимание, что на solaris это должно быть целое число; на общем linux десятичные числа тоже работают (можно поставить 10.15 или еще что).

Пример:

 start program = "/bin/sleep 90; /etc/init.d/apache2 start" with timeout 110 seconds

/bin/sleep это то, что вы хотите.

Вы также можете указать один сценарий оболочки вместо того, что для этого в кавычках:

 start program = "/home/user/scripts/my_custom_start.sh" with timeout 110 seconds

my_custom_start.sh:

 #!/bin/sh
 /bin/sleep 90
 /etc/init.d/apache2 start

Если вы используете сценарий таким образом, не забудьте указать свой интерпретатор: #!/bin/sh (или что-то еще) в соответствии с документацией и правильными разрешениями. Затем просто добавьте оператор сна в сценарий оболочки там, где он вам нужен, вместе с вызовами процессов "start". Не забывайте UID / GID, который вы хотите выполнить (при необходимости).

Обратитесь к документации здесь:

https://mmonit.com/monit/documentation/monit.html#SERVICE-METHODS