トップ «前の日記(2009-07-03) 最新 次の日記(2009-07-06)» 編集

Route 477



2009-07-05

[ruby] Process.spawnを使ってみた

髪を切りに行ったら「痩せましたね」って言われたyharaですこんばんわ。俺の体重、どこいってしもたんや…。 早くRubyKaigiを終えて(健康的に)太りたいです。(本当は、この程度のプレッシャーで痩せたりしないようになりたいんですけど *1)

今日の調査。

といいつつ、今回は基本的な使い方を。

loop.rb

puts "starting loop with ruby #{RUBY_VERSION}.. / #{ENV['TEST']}"
sleep 2

runner.rb

puts "invoking loop.rb"
pid = Process.spawn({'TEST' => "hello"}, "ruby loop.rb")

Thread.new {
  ret = Process.waitpid2(pid)
  puts "process ended: #{ret.inspect}"
}
5.times do |i|
  puts "count #{i}"
  sleep 1
end

んで、実行結果が

D:\proj2\ruby-station>ruby runner.rb
invoking loop.rb
count 0
starting loop with ruby 1.9.1.. / hello
count 1
count 2
process ended: [1456, #<Process::Status: pid 1456 exit 0>]
count 3
count 4

のようになりました。Windowsです。いい感じですね。

*1 院試(2005)と就活(2007)の時も痩せてた気がするので、2年ごとに痩せる周期なのかも…