1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Status in one line

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4299 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
David Heinemeier Hansson 2006-04-28 03:46:17 +00:00
parent 4a218de694
commit de69de10de

View file

@ -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