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.