diff options
-rw-r--r-- | railties/lib/commands/process/inspector.rb | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/railties/lib/commands/process/inspector.rb b/railties/lib/commands/process/inspector.rb index cc17db6ac1..c723f1199a 100644 --- a/railties/lib/commands/process/inspector.rb +++ b/railties/lib/commands/process/inspector.rb @@ -5,7 +5,7 @@ if RUBY_PLATFORM =~ /mswin32/ then abort("Reaper is only for Unix") end OPTIONS = { :pid_path => File.expand_path(RAILS_ROOT + '/tmp/pids'), :pattern => "dispatch.*.pid", - :ps => "ps -o user,start,etime,pcpu,vsz,majflt,command -p %s" + :ps => "ps -o pid,state,user,start,time,pcpu,vsz,majflt,command -p %s" } class Inspector @@ -18,17 +18,16 @@ class Inspector end def inspect - for process in find_processes - puts "#{File.basename(process[:pid_file])}:" - puts(`#{OPTIONS[:ps] % process[:pid]}`) - puts - end + header = `#{OPTIONS[:ps] % 0}`.split("\n")[0] + "\n" + lines = pids.collect { |pid| `#{OPTIONS[:ps] % pid}`.split("\n")[1] } + + puts(header + lines.join("\n")) end private - def find_processes - pid_files.inject([]) do |pids, pid_file| - pids << { :pid_file => pid_file, :pid => File.read(pid_file).to_i } + def pids + pid_files.collect do |pid_file| + File.read(pid_file).to_i end end |