Module: ProcessObserver

Includes:
Exceptions
Defined in:
lib/process_observer.rb,
lib/process_observer/os.rb,
lib/process_observer/log.rb,
lib/process_observer/main.rb,
lib/process_observer/linux.rb,
lib/process_observer/process.rb,
lib/process_observer/version.rb,
lib/process_observer/windows.rb,
lib/process_observer/exceptions.rb

Overview

Module containing everything.

Defined Under Namespace

Modules: Exceptions, Linux, Log, OS, Windows Classes: LinuxProcess, Process, WindowsProcess

Constant Summary collapse

VERSION =

Module version.

"0.1.0"

Class Method Summary collapse

Class Method Details

.allArray<Process>

List of all active processes.

Returns:



7
8
9
10
11
12
13
14
15
16
# 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

.runningArray<Process>

List of all running processes.

Returns:



22
23
24
25
26
27
28
29
30
31
# 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

.thisProcess

Requests info about current Ruby process.

Returns:

Raises:



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/process_observer/main.rb', line 37

def self.this
  pid = ::Process.pid
  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_memoryInteger

Returns used memory in KB.

Returns:

  • (Integer)

    used memory in KB.



53
54
55
# File 'lib/process_observer/main.rb', line 53

def self.used_memory
  self.all.sum(0, &:memory)
end