あなたの質問への答えは質問そのものにあります。githubの人によるrubyプロセスプロセスモニターフレームワークであるgodgemを使用してrubyプロセスを強制終了できます。
基本的に、これがどのように機能するかです:
- プロセスを監視するようにgodを構成します。これは、apache、passenger、mongrel、または長時間実行されるタスクを実行する単純なファイルなど、何でもかまいません。
- 神が事前定義されたコードを実行することに基づいて、神の構成ファイルに条件を設定します。
これは簡単な例です(ドキュメントから引用)。これを、メモリ使用量を監視したい、不明確に実行されるファイルの長時間実行プロセスと見なし、それを呼び出しましょうsimple.rb
loop do
puts 'Hello'
sleep 1
end
ここで、gemをインストールし、god
スーパーユーザーとして実行するように構成して、プロセスを強制終了/生成し、次に構成ファイルを作成できるようにします。例(これもドキュメントから取得):
God.watch do |w|
w.name = "simple"
w.start = "ruby /full/path/to/simple.rb"
w.keepalive(:memory_max => 500.megabytes)
end
ここで、プロセスのメモリ使用量が500メガバイトを超えるかどうかを知っているかもしれないので、神はそれを再起動します。god
gemを使用したプロセス管理を開始する場合に役立つ可能性のあるリソースは、次のとおりです。
さて、あなたが創造的になり、あらゆる種類のことをすることができるように、すべての構成は実際には合法的なルビーコードであることを覚えておいてください。god
最後に、長時間実行プロセスを頻繁に実行している場合は、JVMとLOTがMRIよりも高速であるため、長時間実行プロセスではるかにうまく機能するJRubyを試してみることをお勧めします。