Ilyeneket próbálok futtatni:
sudo dhclient $wifi || otherFunction
A probléma az, amikor div id = “fd63bd58c2″>
nem sikerül, csak lefagy, ahelyett, hogy hibát dobna.
Hogyan írhatom újra a fentieket, így dhclient
megölik és otherFunction
hívják, ha dhclient
nem fejeződik be 60 másodpercen belül?
Válasz
A időtúllépés címke mindent elárul:
sudo timeout 60 dhclient $wifi || otherFunction
Példa:
sudo timeout 3 sleep 5 || echo finished early
Ez a timeout segédprogramot használja a GNU coreutils csomag nyújtja Linux rendszeren.
Megjegyzések
Válasz
Használja a timeout
parancsot.
timeout 2 sleep 1 echo $? 0 timeout 1 sleep 2 echo $? 124
Megjegyzések
- nem ' sajnos nem működnek a MacOS-on
válasz
Használja a timeout
-t gtimeout
formátumba csomagolva a coreutils
port a brew
portban:
brew install coreutils gtimeout --help
Ez “/usr/local/bin
vel fog működni a PATH
. Ha az eredetileg megnevezett timeout
szót szeretné használni, adja hozzá a /usr/local/opt/coreutils/libexec/gnubin
elemet a PATH
timeout
MacOS rendszerhez: stackoverflow.com/a/21118126/451480timeout
megöli-e e parancsot (ellentétben azzal, hogy a parancs más okból nem működik), ellenőrizze a 124. kilépési állapotot.