可能性のある複製:
指定されたタイムアウト後に子プロセスを強制終了するBashスクリプト
特定のコマンドを15秒間実行してからコマンドを強制終了するシェルスクリプトを作成する方法はありますか?
スリープ、待機、pingを試しましたが、間違って使用している可能性があります。
timeout
コマンドを使用します。
timeout 15s command
注:一部のシステムではcoreutils
をインストールする必要があり、他のシステムでは見つからないか、異なるコマンドライン引数があります。 @ArjunShankarが投稿した代替ソリューションを参照してください。それに基づいて、その定型コードをカプセル化し、同じことを行う独自のポータブルtimeout
スクリプトまたは小さなCアプリを作成できます。
一部のマシンにはtimeout
がインストールされていないか、使用できません。その場合、プロセスをバックグラウンドで実行できます。そのPIDは$!
として保存されます。その後、必要な時間だけスリープし、それを強制終了します。
some_command arg1 arg2 &
TASK_PID=$!
sleep 15
kill $TASK_PID
このURL で、これを実現するための複数のソリューションが記載されていることがわかりました。