Method: TTK::Strategies::KillAll#run_impl
- Defined in:
- lib/ttk/strategies/KillAll.rb
#run_impl ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/ttk/strategies/KillAll.rb', line 19 def run_impl IO.popen('ps a') do |ps| ps.readline ps.each do |line| if line =~ /^\s*(\d+)(?:\s+\S+){3}\s+(.*)$/ pid, name = $1.to_i, $2 if name =~ @regexp @pids << pid begin Process.kill(@signal, pid) rescue raise RuntimeError, "Cannot kill #{name}:#{pid}" end end else raise RuntimeError, 'bad ps output' end end end end |