SORU
1 Mart 2011, Salı


Bash belirli bir süre sonra bir çocuk süreç öldüren komut

Ben bir bash script başlatan bir çocuk süreç çöküyor (aslında kilitleniyor zaman zaman ve hiçbir belirgin nedeni (kapalı kaynak, çok uzun sürmeyecek yapabilirim bu konuda). Sonuç olarak, eğer başarılı zaman belirli bir süre sonra geri dönüş yaptığı zaman belirli bir miktar için bu süreci başlatmak ve onu öldürmek mümkün olmak istiyorum.

Bir yokturbasitvesağlambash kullanarak bunu başarmak için bir yol?

P. S.: eğer bu soru serverfault veya süper kullanıcı için daha uygun olup olmadığını söyle.

CEVAP
1 Mart 2011, Salı


(Olarak görülen: BASH FAQ entry #68: "How do I run a command, and have it abort (timeout) after N seconds?")

Eyler yükleme kullanım timeout (sudo apt-get install timeout) zihin ve kullanın beğenmezseniz:

timeout 10 ping www.goooooogle.com

Eğer indirmek istediğiniz bir şey olursa ne zaman aşımı ne içten yapar:

( cmdpid=$BASHPID; (sleep 10; kill $cmdpid) & exec ping www.goooooogle.com )

Daha fazla bash kod için bir zaman aşımı yapmak istediğiniz durumda, gibi ikinci seçeneği kullanın:

( cmdpid=$BASHPID; 
    (sleep 10; kill $cmdpid) \
   & while ! ping -w 1 www.goooooogle.com 
     do 
         echo crap; 
     done )

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caroline Saquet

    Caroline Saq

    1 EKİM 2011
  • Noam Erez

    Noam Erez

    3 NİSAN 2012
  • TeachMeComputer

    TeachMeCompu

    31 EKİM 2009