Monit - Como adicionar um atraso entre parar e iniciar

4

Eu gostaria de saber se é possível adicionar um atraso entre os métodos stop / start. Isso ocorre principalmente porque requer um atraso de pelo menos 10 segundos para fechar todas as conexões de soquete abertas e fechar o soquete do servidor normalmente para iniciar novamente.

Este é o meu script de monitora

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]

Obrigado

    
por kakopappa 05.03.2015 / 05:02

2 respostas

2

O comando é

sleep

seguido por um valor em segundos.

Portanto, adicione sleep 10 entre as linhas e isso deve ser feito.

Observe que deve ser um valor inteiro no solaris; em geral, os decimais do linux funcionam (você pode colocar 10.15 ou outra coisa).

    
por 05.03.2015 / 08:13
0

Exemplo:

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

/bin/sleep é o que você quer.

Você também pode especificar um único script de shell no lugar do que está entre aspas para fazer isso:

 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

Se você usar um script dessa maneira, não se esqueça de especificar seu interpretador: #!/bin/sh (ou qualquer outro) conforme a documentação e as permissões corretas. Em seguida, basta adicionar a instrução de suspensão ao script de shell onde você precisa, juntamente com as chamadas de processo de "início". Não se esqueça do UID / GID que você deseja executar como (se necessário).

Consulte a documentação aqui:

link

    
por 19.08.2018 / 16:59

Tags