私は次のようなものを実行しようとしています:
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パッケージで提供されるタイムアウトユーティリティを使用します。
timeout
MacOSの場合:stackoverflow.com/a/21118126/451480
timeout
(他の理由でコマンドが失敗するのではなく)コマンドを
を使用しtimeout
ます。
timeout 2 sleep 1
echo $?
0
timeout 1 sleep 2
echo $?
124