私は次のようなものを実行しようとしています:
Sudo dhclient $wifi || otherFunction
問題は、dhclient
が失敗すると、エラーをスローする代わりにハングするだけです。
dhclient
が60秒以内に完了しない場合、otherFunction
が強制終了され、dhclient
が呼び出されるように、上記を書き換えるにはどうすればよいですか?
あなたの timeout タグはそれをすべて与えます:
Sudo timeout 60 dhclient $wifi || otherFunction
例:
Sudo timeout 3 sleep 5 || echo finished early
これは、Linux上のGNU coreutilsパッケージによって提供される タイムアウトユーティリティ を使用します。
timeout
のgtimeout
ポートでcoreutils
としてパックされたbrew
を使用します。
brew install coreutils
gtimeout --help
PATH
の/usr/local/bin
で動作します。 timeout
を元の名前で使用する場合は、PATH
に/usr/local/opt/coreutils/libexec/gnubin
を追加します。
timeout
を使用します。
timeout 2 sleep 1
echo $?
0
timeout 1 sleep 2
echo $?
124