Definindo o tempo limite para tarefas cron

11

O cron Linux do Ubuntu (Vixie cron?) Suporta a configuração de tempo limite para seus trabalhos?

Especificamente, o processo seria interrompido após X segundos, a menos que fosse concluído com êxito até então.

Eu tive alguns casos em que as tarefas foram interrompidas devido à conectividade de rede e a vários problemas. O processo fica para sempre, a menos que você os limpe e mate manualmente.

Mikko Ohtamaa
fonte

Respostas:

26

No Ubuntu, o tempo limite do comando existe, que faz parte do coreutils. Você pode usá-lo assim para definir um tempo limite. As versões mais antigas do Debian / Ubuntu não criaram e incluem este comando, mas há um timeoutpacote comparável que você pode instalar.

# puppet shouldn't take more then 40 minutes!
47 * * * * root /usr/bin/timeout 2400 /usr/bin/puppet agent ...
Zoredache
fonte
3
A duração também pode ter um sufixo ("s" por segundos, "m" por minutos, "h" por horas e "d" por dias). Assim, para melhor legibilidade, o acima poderia também ser escrito como 47 * * * * agente root / usr / bin / timeout 40m / usr / bin / fantoche ...
smoove666
Não, não pode. pelo menos não com a implementação que tive ao escrever esta pergunta. A nova versão no coreutils possui o sufixo s. A versão que eu tinha nos sistemas Debian mais antigos não.
precisa
-2

Eu não acho que isso seja possível. Você precisará criar a verificação no seu aplicativo.

Neil H Watson
fonte