module ProcessObserver
Module containing everything.
Constants
- VERSION
Module version.
Public Class Methods
all()
click to toggle source
List of all active processes.
@return [Array<Process>]
# File lib/process_observer/main.rb, line 7 def self.all case when OS.windows? Windows.call when OS.linux? Linux.call else raise UnsupportedPlatformError, "This platform is currently unsupported", caller end end
running()
click to toggle source
List of all running processes.
@return [Array<Process>]
# File lib/process_observer/main.rb, line 22 def self.running case when OS.windows? Windows.call(fi: "STATUS eq RUNNING") when OS.linux? Linux.call.select { |process| process.status.include?("R") } else raise UnsupportedPlatformError, "This platform is currently unsupported", caller end end
this(process_list = nil)
click to toggle source
Requests info about current Ruby process.
@param process_list [Array<Process>, nil] previously saved array of processes
or +nil+ if you want to request all processes in this method.
@return [Process, nil] nil
may be returned if process not found in provided process list.
# File lib/process_observer/main.rb, line 40 def self.this(process_list = nil) pid = ::Process.pid if process_list return process_list.find { |process| process.pid == pid } end case when OS.windows? arr = Windows.call(fi: "PID eq #{pid}") when OS.linux? arr = Linux.call.select { |process| process.pid == pid } else raise UnsupportedPlatformError, "This platform is currently unsupported", caller end raise MultipleProcessError, "Expected single process, got: #{arr.size}", caller if arr.size != 1 arr[0] end
used_memory(process_list = nil)
click to toggle source
Get total used memory.
@param process_list [Array<Process>, nil] previously saved array of processes
or +nil+ if you want to request all processes in this method.
@return [Integer] used memory in KB.
# File lib/process_observer/main.rb, line 66 def self.used_memory(process_list = nil) arr = process_list ? process_list : self.all arr.sum(0, &:memory) end