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

  • Epic Tutorials for iPhone, iPad and iOS

    Epic Tutoria

    18 EYLÜL 2011
  • FlippinWindows | #1 Windows Tutorial Channel!

    FlippinWindo

    23 Mayıs 2010
  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010