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)