Définition du délai d'expiration des tâches cron


11

Ubuntu Linux cron (Vixie cron?) Prend-il en charge la définition du délai d'expiration pour ses travaux?

Plus précisément, le processus serait tué après X secondes, à moins qu'il ne se termine avec succès d'ici là.

J'ai eu quelques cas où des tâches ont été suspendues en raison de la connectivité réseau et de divers problèmes. Le processus est suspendu pour toujours, sauf si vous les nettoyez et les tuez manuellement.

Réponses:


26

Sur Ubuntu, le délai de commande existe, ce qui fait partie de coreutils. Vous pouvez l'utiliser comme ceci pour définir un délai d'expiration. Les anciennes versions de Debian / Ubuntu n'ont pas construit et inclus cette commande, mais il existe un timeoutpaquet comparable que vous pouvez installer.

# puppet shouldn't take more then 40 minutes!
47 * * * * root /usr/bin/timeout 2400 /usr/bin/puppet agent ...

3
La durée peut également avoir un suffixe ("s" pour les secondes, "m" pour les minutes, "h" pour les heures et "d" pour les jours). Donc, pour une meilleure lisibilité, ce qui précède pourrait également être écrit comme 47 * * * * root / usr / bin / timeout 40m / usr / bin / puppet agent ...
smoove666

Non ça ne peut pas. du moins pas avec l'implémentation que j'avais lors de l'écriture de cette question. La nouvelle version dans coreutils a le suffixe s. La version que j'avais sur les anciens systèmes Debian ne le faisait pas.
Zoredache

-2

Je ne pense pas que ce soit possible. Vous devrez intégrer le chèque dans votre application.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.