Eu apenas mudei para um servidor Ubuntu 14.04 de um servidor 11.04. Em / var / spool / cron / crontabs / root eu tenho a linha:
* * * * * /root/arewerunning.sh > /root/appmon.log
arewerunning.sh tem esta aparência:
#!/bin/sh
if P=$(pgrep aserver)
then
echo " "
else
echo "aserver has stopped. System Will reboot"
sudo reboot now
fi
No servidor 11.04, isso estava funcionando. Sempre que eu matava o servidor, o sistema reiniciava. Mas no 14.04 o comando parece estar em execução, mas o sistema não reinicia.
cron.log se parece com:
(root) CMD (/root/arewerunning.sh > /root/appmon.log)
quando o processo não foi eliminado e como:
(root) CMD (/root/arewerunning.sh > /root/appmon.log)
(CRON) info (No MTA installed, discarding output)
quando o processo foi morto. Eu sei que a linha MTA é porque está tentando me enviar e-mail e não pode, mas isso não deve impedir a reinicialização.
Eu tentei executar o comando fora do cron e funciona muito bem. Estou usando um caminho direto para que não seja um problema. Eu também tentei adicionar "sh" na frente do comando. appmon.log não está mostrando nada. Eu tentei colocar outros comandos no arquivo e eles funcionam muito bem.