Komut X zamanında bitmezse bas?


13

Gibi bir şey çalıştırmaya çalışıyorum:

sudo dhclient $wifi || otherFunction

Sorun dhclientbaşarısız olduğunda bir hata atmak yerine sadece asılı.

Yukarıdakileri nasıl yeniden yazabilirim, böylece 60 saniye içinde bitmezse dhclientöldürülür ve otherFunctionçağrılır dhclient?

Yanıtlar:


13

Kişisel etiketi Her şeyini feda:

sudo timeout 60 dhclient $wifi || otherFunction

Bir örnek:

sudo timeout 3 sleep 5 || echo finished early

Bu , Linux'ta GNU coreutils paketi tarafından sağlanan zaman aşımı yardımcı programını kullanır .


2
MacOS'ta maalesef çalışmıyor
Alexander Mills


Özel timeoutolarak komutu öldürmeyi kontrol etmek istiyorsanız (başka nedenlerden dolayı başarısız olan komutun aksine), çıkış durumu
124'ü


2

timeoutAmbalajı gtimeoutaşağıdaki coreutilsbağlantı noktasıyla kullanın brew:

brew install coreutils
gtimeout --help

Yani birlikte çalışacağız /usr/local/binGözlerinde farklı PATH. Kullanmak isterseniz timeoutbaşlangıçta adlı olarak eklemek /usr/local/opt/coreutils/libexec/gnubinadresinden Müşteri PATH.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.