Class: ProcessQueryLanguage::Backend::ProcessStatus
- Inherits:
-
Object
- Object
- ProcessQueryLanguage::Backend::ProcessStatus
- Defined in:
- lib/process-query-language/backend/process-status.rb
Overview
This backend uses the ps utility and parses its output. Because
ps uses whitespace as the delimiter (and truncates too wide fields)
except the last, we need to sort the fields so that :command is
the last.
Constant Summary collapse
- FIELDS =
%w{ pid rss command }.map(&:to_sym)
Instance Method Summary collapse
Instance Method Details
#scan(fields) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/process-query-language/backend/process-status.rb', line 14 def scan(fields) result = [] %x[ps -Aco #{FIELDS.join(',')}].lines.to_a[1..-1].each do |line| values = line.split(' ') process = {} FIELDS.each_with_index do |value, i| next unless fields.include?(FIELDS[i]) process[FIELDS[i]] = convert(FIELDS[i], values[i]) end result << process end return result end |