可能性の重複:
Bash script that kills a child process after a given timeoutBashでプロセスをタイムアウトで実行するには?
、その後、15秒間、特定のコマンドを実行するコマンドを殺すシェルスクリプトを書くための方法はありますか?
私は睡眠を待って、pingを試みましたが、多分私はそれらを間違って使用しています。
可能性の重複:
Bash script that kills a child process after a given timeoutBashでプロセスをタイムアウトで実行するには?
、その後、15秒間、特定のコマンドを実行するコマンドを殺すシェルスクリプトを書くための方法はありますか?
私は睡眠を待って、pingを試みましたが、多分私はそれらを間違って使用しています。
プロセスをバックグラウンドにすることができ、そのPIDは$!
になります。そして、眠ると殺す:this URLで
some_command some_arg1 some_arg2 &
TASK_PID=$!
sleep 15
kill $TASK_PID
私は、これを実現するために複数の解決策が記載されていることがわかります。
timeout 15s command
注:あなたがcoreutils
をインストールする必要があるいくつかのシステムでは、他人にそれが見つからないか、別のコマンドライン引数を持っています
私は最初に自分の答えを削除しましたが(明らかに、Karolyの方がはるかに素晴らしい)、一部の人は 'timeout' => undeletedを持っていないようです。 – ArjunShankar
はtimeout
コマンドを使用します。 @ArjunShankarによって掲載された別の解決策を参照してください。それに基づいて、ボイラープレートコードをカプセル化して、同じことをする独自のポータブルtimeout
スクリプトまたは小さなCアプリを作成することができます。
コマンドが以前に終了した場合は即座に戻ります。 –
コマンドでは15秒後にkillしようとしていますが、このコマンドを使用しようとしましたが、コマンドの実行を停止しませんでした。 – AlanF
これはあなたが**コマンドを実行する方法です。 –
通常、ALARM信号を使用してトラップします。しかしコマンドユーティリティ[timelimit](http://devel.ringlet.net/sysutils/timelimit/)は有望です。 – Konerak
これはofftopicとして投票しますか? :/ –