2009-07-05
■ [ruby] Process.spawnを使ってみた
髪を切りに行ったら「痩せましたね」って言われたyharaですこんばんわ。俺の体重、どこいってしもたんや…。 早くRubyKaigiを終えて(健康的に)太りたいです。(本当は、この程度のプレッシャーで痩せたりしないようになりたいんですけど *1)
今日の調査。
- Process.spawnがすごいことになってる
といいつつ、今回は基本的な使い方を。
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年ごとに痩せる周期なのかも…