コマンドがX時間で終了しない場合はbashしますか?


12

私は次のようなものを実行しようとしています:

sudo dhclient $wifi || otherFunction

問題は、dhclient失敗するとエラーをスローする代わりにハングするだけです。

60秒以内に終了しない場合dhclientは、上記のコードを書き直して強制終了し、otherFunction呼び出すことdhclientができますか?

回答:


12

きみの タグはそれをすべて与えます:

sudo timeout 60 dhclient $wifi || otherFunction

例:

sudo timeout 3 sleep 5 || echo finished early

これは、LinuxのGNU coreutilsパッケージで提供されるタイムアウトユーティリティを使用します


2
残念ながらMacOSでは動作しません
アレクサンダーミルズ


timeout(他の理由でコマンドが失敗するのではなく)コマンドを
強制


2

次のポートとtimeout同様に、packedを使用します。gtimeoutcoreutilsbrew

brew install coreutils
gtimeout --help

それはあなたので動作し/usr/local/binますPATHtimeout元の名前のまま使用する場合は、に追加/usr/local/opt/coreutils/libexec/gnubinしますPATH

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.