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