Bisakah saya membatasi runtime dari cronjob


8

Saya memiliki cronjob yang berjalan setiap jam yang kadang-kadang terlalu lama untuk dijalankan, apakah ada cara saya dapat mengatur runtime maksimum dan pekerjaan terbunuh jika melebihi itu?

Ini ada di server Ubuntu 10.04.

Terima kasih, jebw

Jawaban:


11

Coba timeoutperintahnya. Sebagai contoh:

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

akan mengirim SIGINT ke perintah Anda jika belum selesai dalam 59 menit.


Info bagus Anda melewatkan '-s', tetapi "timeout -s 2 3540 <perintah" ".
Fish Monitor

Yang diinstal melalui apt di ubuntu menggunakan sintaks yang saya sebutkan:usage: timeout [-signal] time command...
Cakemox

Apa yang diberikan 'dpkg -S bin / timeout'? Sebenarnya milikku berasal dari coreutils dan murni GNUish.
Fish Monitor

timeout: /usr/bin/timeout
Cakemox

10,04, sama dengan OP.
Cakemox

0

Nggak. Cara kita melakukannya adalah membuat skrip dengan file kunci dan meminta skrip memeriksa file kunci itu sebelum mulai berjalan lagi, sehingga dapat memeriksa apakah sudah berjalan dan memutuskan apakah sudah berjalan, jika menunggu yang lain untuk mengakhiri atau jika itu membunuh yang lain sebelum berjalan.

File kunci hanyalah file kosong atau file dengan skrip lain PIDdisimpan di suatu tempat seperti /var/runatau /var/lock.


0

Jawaban cakemox adalah yang terbaik. Jika tidak, cukup masukkan pid ke dalam file atau gunakan killall di cronjob baru semenit sebelumnya untuk mematikan proses.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.