我想知道是否可以在停止/启动方法之间添加延迟。这主要是因为它需要至少 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 [email protected]
谢谢
答案1
命令是
sleep
后跟以秒为单位的值。
sleep 10
因此,在行间添加就可以了。
请注意,在 Solaris 上它必须是一个整数值;在一般的 Linux 上小数也可以(您可以输入 10.15 或其他数字)。
答案2
例子:
start program = "/bin/sleep 90; /etc/init.d/apache2 start" with timeout 110 seconds
/bin/sleep
就是你想要的。
您还可以指定一个 shell 脚本来代替引号中的内容来执行此操作:
start program = "/home/user/scripts/my_custom_start.sh" with timeout 110 seconds
我的自定义启动.sh:
#!/bin/sh
/bin/sleep 90
/etc/init.d/apache2 start
如果您以这种方式使用脚本,请不要忘记根据文档和正确的权限指定您的解释器:(#!/bin/sh
或其他)。然后只需将 sleep 语句添加到您需要的 shell 脚本中,以及您的“启动”进程调用。不要忘记您想要执行的 UID/GID(如果需要)。
请参阅此处的文档:
https://mmonit.com/monit/documentation/monit.html#SERVICE-METHODS