Como reiniciar um aplicativo monitorado por monit em um horário específico

1

Eu tenho um aplicativo python de longa duração que é monitorado por monit, verificando se tudo está bem a cada minuto. Isso é ótimo, no entanto, se o aplicativo se comportar mal, eu quero que os usuários sejam capazes de matá-lo, e até agora parece uma simples chamada de sistema:

subprocess.run('monit stop app')

Desta forma, o reinício automático não entra em ação com a próxima verificação - ele para e não é monitorado.

Mas mesmo depois disso, gostaria que fosse reiniciado a noite, então não há dependência de usuários se esquecerem de reiniciar. Como eu iria adicionar uma expressão cron para fazer isso, sem perder a verificação normal a cada minuto?

A parte relevante da configuração no momento é apenas:

check process app with pidfile /var/run/app.pid
start program = "/proj/folder/app/launchscript.sh start"
stop program = "/proj/folder/app/launchscript.sh stop"
# and with pseudocode I would like something like 
if app is stopped or not monitored at 0 3 * * * then start

Isso é possível? Se não, eu posso fazer uma entrada crontab a partir do aplicativo que emite um início de monit, mas eu prefiro ficar para monit.

    
por Innkeeper 15.01.2017 / 00:48

0 respostas