Jalankan perintah untuk waktu tertentu dan batalkan jika waktu melebihi

47

Saya ingin tahu bagaimana saya dapat menjalankan perintah untuk waktu tertentu, katakan, satu menit dan jika tidak menyelesaikan eksekusi maka saya harus dapat menghentikannya.

nikhil
sumber

Jawaban:

62

Gunakan timeout:

NAME
       timeout - run a command with a time limit

SYNOPSIS
       timeout [OPTION] DURATION COMMAND [ARG]...
       timeout [OPTION]

(Untuk berjaga-jaga, jika Anda tidak memiliki perintah ini atau jika Anda harus kompatibel dengan cangkang yang sangat tua dan memiliki beberapa persyaratan khusus lainnya ... lihat pertanyaan ini ;-))

Stéphane Gimenez
sumber
1
Sempurna, terima kasih telah menautkan ke pertanyaan itu. Saya tidak memiliki batas waktu pada sistem saya tetapi sekarang saya lakukan. Hanya sebagai catatan, apakah batas waktu dibundel dengan sebagian besar distribusi linux?
nikhil
1
Sangat keren. Anda dapat melakukan sesuatu seperti ini: for i in `seq 0 3`; do timeout 2 ethtool -p eth$i; done;untuk berkedip LED di NIC
user1527227
1
Perintah yang seksi. Terima kasih telah menunjukkannya, tidak menyadarinya.
Bruno Bieri