Zaman aşımı gereksiz gecikme olmadan bash bir komut | Netgez.com
SORU
26 Mart 2009, PERÅžEMBE


Zaman aşımı gereksiz gecikme olmadan bash bir komut

Command line command to auto-kill a command after a certain amount of time This answer

öneriyor bash komut uzun süre çalışan bir komut zaman aşımı için 1-hat yöntemi, satır:

( /path/to/slow command with options ) & sleep 5 ; kill $!

Ama bir" komut önceki zaman aşımı. daha bitirebilir "uzun süren verilmiş olabilir. (Hadi bir "genellikle uzun süre çalışan-ama-bazen-hızlı" komutu, ya da aramatlrbsfeğlenmek için.)

Bu yüzden bu şık 1-liner birkaç sorun vardır yaklaşım. İlk, sleep koşullu değil, bu istenmeyen bir zaman dizisi için çekilen bitirmek için alt sınır ayarlar. Ne zaman uyku için 30'lu veya 2 m ya da 5 m bile düşününtlrbsfkomut 2 saniye içinde tamamlanır ve arzu edildiği gibi -. İkinci olarak, kill koşulsuz, bu sıra dışı çalışan bir süreci öldürmek ve ağlamaya devam dener.

Yani...

Bir yolu yokturgenellikle uzun süre çalışan-ama-bazen-hızlı bir zaman aşımı için< . em^"" . tlrbsf ) komut bu

  • bir uygulama (diÄŸer soru zaten Perl ve C cevaplar vardır) bash vardır
  • iki önceki de sona erecek:tlrbsfprogram sonlandırma, ya da zaman aşımı süresi doldu
  • mevcut olmayan/non-çalışan süreçleri öldürmek olmaz (veya isteÄŸe baÄŸlı olarak:ÅŸikayetkötü bir ölüm hakkında)
  • 1-astar . bir olmak zorunda deÄŸil
  • özellik listesi ya da Linux altında çalıştırabilirsiniz

... ve bonus puan için çalışırtlrbsfön planda komut ve herhangi bir "uyku" ya/stdout/stderr stdın gibi arka planda ekstra işlemtlrbsfkomuta yönlendirilebilir, eğer doğrudan çalıştırmak olsaydı aynı mı?

Eğer öyleyse, lütfen kodunuzu paylaşın. Değilse, neden açıklayınız.

Bir süre söz konusu örnek kesmek için harcadım ama bash yeteneklerimin sınırı basıyorum.

CEVAP
3 Ocak 2011, PAZARTESİ


Muhtemelen coreutils timeout komutu arıyoruz. Coreutils bir parçası olduğu için, teknik olarak C bir çözümdür, ama yine de coreutils. Daha fazla ayrıntı için info timeout. İşte size bir örnek:

timeout 5 /path/to/slow/command with options

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • Evan Coury

    Evan Coury

    29 NİSAN 2007
  • MndsgnVEVO

    MndsgnVEVO

    26 Kasım 2013