Eu tenho um arquivo jar que estou rodando assim no meu Ubuntu 10.10 e então ele inicia meu servidor expositor em segundo plano -
nohup java \
-jar /pekooz/exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar \
-c file --fsconfigdir /opt/exhibitor/conf \
--hostname machineA > exhibitor.out &
Agora estou tentando usar o crontab
para verificar se o servidor do expositor está em execução ou não. Se ele não estiver rodando, então comece de novo então eu decidi usar o crontab e fiz os passos abaixo para configurar o crontab -
- Criado um novo crontab executando
crontab -e
.
-
Adicionada esta linha ao arquivo que acabou de abrir
*/5 * * * * pgrep -f exhibitor || nohup java -jar /pekooz/exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname machineA > exhibitor.out
-
Salve o arquivo e saia do editor.
Então, para o propósito do teste, ver se o meu crontab está funcionando ou não, eu comecei meu servidor de expositores assim primeiro -
$ nohup java \
-jar ./exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar \
-c file --fsconfigdir /opt/exhibitor/conf \
--hostname machineA > exhibitor.out &
[1] 14401
$ nohup: ignoring input and redirecting stderr to stdout
E então eu configurei meu crontab como mostrado acima com as etapas. Depois disso eu fiz kill -9 14401
para que eu possa ver se meu servidor de expositor está sendo reiniciado automaticamente pelo crontab ou não. E aparentemente, eles não começaram e não vejo nenhum erro também. Abaixo está o log -
$ sudo tail -f /var/log/syslog
Nov 5 17:21:45 machineA crontab[12755]: (cronusapp) BEGIN EDIT (cronusapp)
Nov 5 17:23:17 machineA crontab[12755]: (cronusapp) END EDIT (cronusapp)
Nov 5 17:25:01 machineA CRON[13671]: (root) CMD ( puppet apply /etc/puppet/manifests/motd-stats.pp >>$PUPPET_LOG 2>&1)
Nov 5 17:25:01 machineA CRON[13672]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Nov 5 17:25:01 machineA CRON[13673]: (cronusapp) CMD (pgrep -f exhibitor || nohup java -jar /pekooz/exhibitor-1.5.1/lib/exhibitor-1.5.1-jar-with-dependencies.jar -c file --fsconfigdir /opt/exhibitor/conf --hostname machineA > exhibitor.out)
Nov 5 17:25:01 machineA postfix/pickup[2345]: 2B0D8819F9: uid=78402 from=<cronusapp>
Nov 5 17:25:01 machineA postfix/cleanup[13679]: 2B0D8819F9: message-id=<[email protected]>
Nov 5 17:25:01 machineA postfix/qmgr[25623]: 2B0D8819F9: from=<[email protected]>, size=814, nrcpt=1 (queue active)
Nov 5 17:25:01 machineA postfix/local[13681]: 2B0D8819F9: to=<[email protected]>, orig_to=<cronusapp>, relay=local, delay=0.11, delays=0.07/0/0/0.04, dsn=2.0.0, status=sent (delivered to mailbox)
Nov 5 17:25:01 machineA postfix/qmgr[25623]: 2B0D8819F9: removed
O que estou fazendo de errado aqui? Por que meu crontab não está funcionando? Eu só preciso reiniciar meu servidor de expositores automaticamente se eles caírem de alguma forma.