Cron em execução, mas o CMD não funciona

1

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.

    
por khm 26.09.2016 / 17:22

1 resposta

0

Eu percebi isso! O problema era um problema de caminho para a reinicialização. Eu tive que colocar "sudo / sbin / reboot agora" em arewerunning.sh. Eu tinha lido sobre os problemas de caminho para outros comandos, mas não coloquei dois e dois juntos que a reinicialização também era um comando cujo caminho poderia ter sido adulterado.

    
por khm 26.09.2016 / 19:35