Posso limitar o tempo de execução de um cronjob

8

Eu tenho um cronjob que é executado a cada hora, o que ocasionalmente demora a ser executado. Existe alguma maneira de definir um tempo de execução máximo e o trabalho ser eliminado se exceder esse valor?

Isso está em um servidor Ubuntu 10.04.

Obrigado, jebw

    
por jebw 08.04.2011 / 14:57

3 respostas

11

Experimente o comando timeout . Por exemplo:

0 * * * * timeout -2 3540 /path/to/your_command.sh

enviará um SIGINT para o seu comando se ele não for concluído em 59 minutos.

    
por 08.04.2011 / 15:05
0

Não. A maneira como fazemos isso é criar um script com um arquivo de bloqueio e fazer com que o script verifique esse arquivo de bloqueio antes de começar a executar novamente, para verificar se ele já está em execução e decidir se ele é executado, se aguarda o outro final ou se matar o outro antes de executar.

Um arquivo de bloqueio é apenas um arquivo vazio ou um arquivo com o outro script PID salvo em algum lugar como /var/run ou /var/lock .

    
por 08.04.2011 / 15:01
0

A resposta da cakemox é a melhor. Caso contrário, basta colocar o pid em um arquivo ou usar o killall no cron job um minuto antes para matar o processo.

    
por 08.04.2011 / 15:20