私は次のようなものを実行しようとしています:
sudo dhclient $wifi || otherFunction
問題は、dhclient失敗するとエラーをスローする代わりにハングするだけです。
60秒以内に終了しない場合dhclientは、上記のコードを書き直して強制終了し、otherFunction呼び出すことdhclientができますか?
私は次のようなものを実行しようとしています:
sudo dhclient $wifi || otherFunction
問題は、dhclient失敗するとエラーをスローする代わりにハングするだけです。
60秒以内に終了しない場合dhclientは、上記のコードを書き直して強制終了し、otherFunction呼び出すことdhclientができますか?
回答:
きみの タイムアウトタグはそれをすべて与えます:
sudo timeout 60 dhclient $wifi || otherFunction
例:
sudo timeout 3 sleep 5 || echo finished early
これは、LinuxのGNU coreutilsパッケージで提供されるタイムアウトユーティリティを使用します。
timeoutMacOSの場合:stackoverflow.com/a/21118126/451480
timeout(他の理由でコマンドが失敗するのではなく)コマンドを
を使用しtimeoutます。
timeout 2 sleep 1
echo $?
0
timeout 1 sleep 2
echo $?
124