0
得到叉我有一個運行使用fork若干子進程的腳本:紅寶石由pid
def my_fork s
puts "start fork #{s}, pid #{Process.pid}"
sleep s
puts "finish"
end
forks = []
5.times do |t|
forks << fork do
my_fork t+5
end
end
begin
Process.waitall
rescue Interrupt => e
puts "interrupted!"
forks.each{|fr| Process.kill 9, fr}
end
我需要按下Ctrl + C停止腳本的能力。但時間緊迫,一些進程可能已經死了。因爲它可以驗證?
,如果你這樣做:
forks.each{|fr| puts fr.exited?; Process.kill 9, fr}
我得到一個錯誤:
undefined method `exited?' for 27520:Fixnum (NoMethodError)