module ChildProcess
Public Instance Methods
find_child_process_recursively(pid)
click to toggle source
# File lib/tiny_ge/child_process.rb, line 4 def find_child_process_recursively(pid) $ps_data.each do |item| next if item==nil if item[4].to_i == pid.to_i $pids << item[3].to_i find_child_process_recursively(item[3].to_i) end end return nil end
kill_all_child_process(pid)
click to toggle source
# File lib/tiny_ge/child_process.rb, line 15 def kill_all_child_process(pid) p $pids = [pid] # store jobs in $data $ps_data = command_line('ps -xal').stdout.split("\n").inject([]) do |dd, line| dd << line.match(/^(\d+)\s+(\d+)\s+(\d+)\s+(\d+)(.+)/) # stored in String end find_child_process_recursively(pid) p $pids $pids.uniq.each do |pid| p command = "kill -9 #{pid}" command_line command end end