Use o comando timeout
, é muito mais fácil:
0 0 * * * timeout 28h script.sh
Eu preciso criar um cron job que execute um script bash em segundo plano que não termine a menos que seja morto. O bash inicia um processo que deve continuar rodando por cerca de 28 horas, então eu preciso de outro trabalho cron para matá-lo. Primeiro cron executa todos os dias às 0:00, inicia o processo. O segundo cron funciona às 4:00 da manhã e tem que matar o processo iniciado no dia anterior, deixando o do dia atual para ser executado.
Do que eu pesquisei, eu deveria armazenar o pid do processo em um arquivo e depois ter o segundo cron acessando, mas como e onde? No cron ou no bash? Considerando que o processo iniciado pelo script bash não termina até que seja morto, os comandos depois de algum tempo serão executados?
EDIT: solução Ipor Sircer resolve o problema particular que tenho, mas eu ainda gostaria de aprender a exportar o PID em um arquivo que outro CRON pode acessar.