Mengatur batas waktu untuk pekerjaan cron

11

Apakah Ubuntu Linux cron (Vixie cron?) Mendukung pengaturan waktu tunggu untuk pekerjaannya?

Secara khusus, proses akan dimatikan setelah X detik kecuali jika berhasil selesai saat itu.

Saya memiliki beberapa kasus di mana tugas-tugas tergantung karena konektivitas jaringan dan berbagai masalah. Proses dibiarkan menggantung selamanya kecuali Anda secara manual membersihkan dan membunuh mereka.

Mikko Ohtamaa
sumber

Jawaban:

26

Di Ubuntu ada batas waktu perintah , yang merupakan bagian dari coreutils. Anda dapat menggunakannya seperti ini untuk mengatur batas waktu. Versi Debian / Ubuntu yang lebih lama tidak membangun dan memasukkan perintah ini, tetapi ada timeoutpaket yang dapat Anda instal.

# puppet shouldn't take more then 40 minutes!
47 * * * * root /usr/bin/timeout 2400 /usr/bin/puppet agent ...
Sakit kepala
sumber
3
Durasi juga dapat memiliki akhiran ("s" untuk detik, "m" untuk menit, "h" selama berjam-jam dan "d" selama berhari-hari). Jadi untuk keterbacaan yang lebih baik, hal di atas juga dapat ditulis sebagai 47 * * * * root / usr / bin / timeout 40m / usr / bin / puppet agent ...
smoove666
Tidak, tidak bisa. setidaknya tidak dengan implementasi yang saya miliki saat menulis pertanyaan ini. Versi baru di coreutils memiliki akhiran s. Versi yang saya miliki di sistem Debian yang lebih lama tidak.
Zoredache
-2

Saya rasa ini tidak mungkin. Anda harus membuat cek ke dalam aplikasi Anda.

Neil H Watson
sumber