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

  • Anthony Cumia

    Anthony Cumi

    5 EYLÜL 2006
  • bunnyboxx

    bunnyboxx

    17 NİSAN 2008
  • LinusTechTips

    LinusTechTip

    25 Kasım 2008