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 |