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
timeoutMacOS rendszerhez: stackoverflow.com/a/21118126/451480timeoutmegö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.