Quando eu uso check process
, o monit iniciará o programa que eu definir em start program
, e o monit o reiniciará se ele parar.
Mas quando eu uso check program
monit não será iniciado automaticamente. Se o programa estiver em execução e, por algum motivo, ele parar com um código de saída diferente de 0, o monitor não irá reiniciá-lo (veja minha configuração abaixo).
Não sei ao certo como iniciar e reiniciar corretamente o programa com base nos meus códigos de saída.
Meu arquivo de configuração é assim:
set logfile /tmp/monit.log
set daemon 1
check program MyProgram with path “/monit/MyProgram.py”
and with timeout 3600 seconds
every 1 cycles
start program = “/monit/MyProgram.py” with timeout 3600 seconds
if status > 200 then restart
if status < 201 then stop
if 2 restart 5 cycles then exec “/monit/custom_script.sh”
if 2 restart 5 cycles then stop
e eu tentei iniciar o monit assim:
monit -c monitrc -vv
monit -c monitrc start all -vv
monit -c monitrc start MyProgram -vv