それぞれpython simulate.py <parameter list>
。
私にとって必要なのは、プロセスを自動的に終了する一種の「ランタイム制約」コマンドです。Ctrl+Cしかし、プロセスがそれ自体正常に終了しない場合は、指定された時間以降に簡単な終了も機能すると思います。
もちろん、これらのスクリプトを直接書くこともできますが、誰かが私より先に書いたかどうか疑問ですps
。time
ベストアンサー1
潜在的なソリューション #1
使用timeout
コマンド:
$ date
Mon May 6 07:35:07 EDT 2013
$ timeout 5 sleep 100
$ date
Mon May 6 07:35:14 EDT 2013
timeout
しばらくしても停止しない場合は、コマンドと処理にガードを設定することもできます。kill
$ date
Mon May 6 07:40:40 EDT 2013
$ timeout -k 20 5 sleep 100
$ date
Mon May 6 07:40:48 EDT 2013
プロセスが停止してsleep 100
から最大20秒待ってからまだ実行中の場合は、シグナルを送信timeout
します。kill
潜在的なソリューション #2
より危険ですが、別のアプローチは次のとおりです。
./myProgram &
sleep 1
kill $! 2>/dev/null && echo "myProgram didn't finish"
Stack Overflowの質問でこの技術を見つけました。Linuxでのプログラム実行時間の制限。具体的には回答。
メモ:@mattdmが残したコメントによれば、上記のアプローチは、プロセスの後に新しいプロセスが開始されなかったと仮定しているため危険です。したがって、新しいPIDは割り当てられません。このため、このアプローチは使用しないでくださいが、ここではこの問題を解決するための一般的なアプローチへの参照のみを目的としています。このtimeout
方法は、2つの方法のうちより良い選択です。