Eu tenho um cronjob extremamente simples que configurei para ter certeza de que um script continua rodando, e me mande um email se ele cair (baixa tecnologia, eu sei, mas foi planejado como uma solução rápida)
Infelizmente, este cronjob não está fazendo o seu trabalho
Aqui está a linha relevante do meu crontab:
* * * * * pgrep -f app.py || echo "Your app is down" | mail -s "URGENT" [email protected]
Quando executo o comando no shell, ele funciona: Eu recebo um email apenas se o aplicativo estiver inativo. Como um efeito colateral menor, quando o aplicativo está em execução, ele envia o PID para a tela.
Quando executo o comando por meio de um cronjob, nunca recebo nenhum email. Investigando (configurando o parâmetro MAILTO=
para ver a saída do cronjob) notei que quando o aplicativo está rodando, ele gera dois PIDs, e quando o aplicativo não está rodando ele gera um PID (nunca zero, por isso nunca envia um email)
É quase como se o cronjob estivesse criando um processo que, por sua vez, é visto por si só - muito parecido com como a digitação ps -ax | grep "anything"
sempre retornará:
12345 pts/2 S+ 0:00 grep --color=auto anything
Alguém sabe como consertar este cronjob?