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

  • atKristaBradford

    atKristaBrad

    4 Aralık 2010
  • Blue Lightning TV

    Blue Lightni

    9 EKİM 2011
  • YAN TV

    YAN TV

    20 EKİM 2011