Saya ingin menjalankan skrip shell yang memiliki loop di dalamnya dan itu bisa berjalan selamanya yang saya tidak ingin terjadi. Jadi saya perlu memperkenalkan batas waktu untuk keseluruhan skrip.
Bagaimana saya bisa memperkenalkan batas waktu untuk seluruh skrip shell di bawah SuSE?
shell-script
timeout
Radek
sumber
sumber
timeout
atauexpect
)Jawaban:
Jika GNU
timeout
tidak tersedia, Anda dapat menggunakanexpect
(Mac OS X, BSD, ... biasanya tidak memiliki alat dan utilitas GNU secara default).Edit Contoh:
sumber
timeout
itu sendiri adalah 124 dalam kasus batas waktu, jika tidak maka status pengembalian perintah (ini disebutkan dalam jawaban Tim Kennedy).Terimakasih atas klarifikasinya.
Cara termudah untuk mencapai apa yang Anda cari adalah menjalankan skrip Anda dengan loop di dalam wrapper seperti
timeout
perintah dari paket GNU Coreutils.Pada akhirnya, itu akan jauh lebih mudah daripada menulis fungsi timeout Anda sendiri, yang cangkang cenderung tidak memiliki builtin.
sumber
gtimeout
pada pengaturan saya (OSX).Luncurkan proses pengawas dari dalam skrip Anda untuk mematikan induknya jika itu berjalan terlalu lama. Contoh:
Skrip ini akan dihentikan oleh pengawas setelah lima detik.
sumber
Ada juga
cratimeout
oleh Martin Cracauer.sumber
sumber