Rubyで子プロセス監視
Rubyで子プロセス監視
Ruby1.9系だと
Process.spawnが一番簡単みたい。
クローラーなんかだと、相手側のサーバーの都合とか、回線の都合とかで
rescue書いておいてもエラー落ちしてたり。
なんで、もし終了してたら再度実行させるみたいなのを簡単に書いておきたかった。
例えば以下のコードをクローラーとして(エラー落ちする可能性ありコードって事で)
2.times{ puts "test" sleep 1 }
監視コードはこんな感じで書いておけば、エラー落ちしても再起動かけれる
ラクチンだー
def foo return Process.spawn("ruby 2times.rb") end pid = foo loop do check = Process.waitpid(pid) unless check == nil pid = foo end sleep 60 end