procps-rb 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/procps/ps/base_columns.rb +62 -0
- data/lib/procps/ps/extra_columns.rb +78 -0
- data/lib/procps/ps.rb +21 -2
- data/lib/procps/version.rb +1 -1
- data/lib/procps.rb +1 -0
- metadata +3 -2
- data/lib/procps/ps/columns.rb +0 -138
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6339640587de9a0b986ab9e619ce79e05103e977
|
4
|
+
data.tar.gz: 9015b5ef02de0533655ea8374e76e92459bd48a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ca8462293275665111926cf580431df168d76d176c65e770d17ac1b7afd1fa34cd1834f46a48bbbc79ab27a4888366bdfeb875b653532f59f785db362e7f3bc
|
7
|
+
data.tar.gz: 2271e315406bed2f3a119baa1e32c277a9d49e97178d095a1100433c9daba14c0fa3f9445d6e207d62e1b19614669df0072a0ba5a8631a1de3f7f202e881cd64
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require 'procps/column'
|
2
|
+
require 'procps/column_types/command'
|
3
|
+
require 'procps/column_types/memsize'
|
4
|
+
|
5
|
+
module Procps
|
6
|
+
class PS
|
7
|
+
Address = -> (base = 10, null: "-".freeze) { -> (v) { v.is_a?(String) ? v == null ? nil : v.to_i(base) : v } }
|
8
|
+
Address_10 = Address[]
|
9
|
+
Address_16 = Address[16]
|
10
|
+
|
11
|
+
define_column :cmd, "CMD", Command
|
12
|
+
define_column :comm, "COMMAND"
|
13
|
+
define_column :command, "COMMAND", Command
|
14
|
+
define_column :gid, &:to_i
|
15
|
+
define_column :group
|
16
|
+
define_column :ni, &:to_i
|
17
|
+
define_column :nlwp, &:to_i
|
18
|
+
define_column :nwchan, "WCHAN", Address_16
|
19
|
+
define_column :pcpu, "%CPU", &:to_f
|
20
|
+
define_column :pgid, &:to_i
|
21
|
+
define_column :pgrp, "PGRP", &:to_i
|
22
|
+
define_column :pid, &:to_i
|
23
|
+
define_column :pmem, "%MEM", &:to_f
|
24
|
+
define_column :ppid, &:to_i
|
25
|
+
define_column :rgid, &:to_i
|
26
|
+
define_column :rgroup
|
27
|
+
define_column :rss, "RSS", Memsize
|
28
|
+
define_column :rtprio, "RTPRIO", Address_10
|
29
|
+
define_column :ruid, &:to_i
|
30
|
+
define_column :ruser
|
31
|
+
define_column :s
|
32
|
+
define_column :sess, &:to_i
|
33
|
+
define_column :sgid, &:to_i
|
34
|
+
define_column :sgroup
|
35
|
+
define_column :sid, &:to_i
|
36
|
+
define_column :size, &:to_i
|
37
|
+
define_column :start, "STARTED"
|
38
|
+
define_column :start_time
|
39
|
+
define_column :stat
|
40
|
+
define_column :tgid, &:to_i
|
41
|
+
define_column :sz, &:to_i
|
42
|
+
define_column :thcount, "THCNT", &:to_i
|
43
|
+
define_column :tid, &:to_i
|
44
|
+
define_column :time
|
45
|
+
define_column :tname, "TTY"
|
46
|
+
define_column :tt
|
47
|
+
define_column :user
|
48
|
+
define_column :uid, &:to_i
|
49
|
+
define_column :userns, &:to_i
|
50
|
+
|
51
|
+
alias_column :'%cpu', :pcpu
|
52
|
+
alias_column :'%mem', :pmem
|
53
|
+
alias_column :nice, :ni
|
54
|
+
alias_column :args, :command
|
55
|
+
alias_column :cputime, :time
|
56
|
+
alias_column :rssize, :rss
|
57
|
+
alias_column :rsz, :rss
|
58
|
+
alias_column :state, :s
|
59
|
+
alias_column :tty, :tt
|
60
|
+
alias_column :uname, :user
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require "procps/column_types/scheduling_policy"
|
2
|
+
|
3
|
+
module Procps
|
4
|
+
class PS
|
5
|
+
define_column :blocked
|
6
|
+
define_column :bsdstart, "START"
|
7
|
+
define_column :bsdtime, "TIME"
|
8
|
+
define_column :c, &:to_f
|
9
|
+
define_column :caught
|
10
|
+
define_column :cgroup
|
11
|
+
define_column :cls, "CLS", SchedulingPolicy
|
12
|
+
define_column :cp do |v|
|
13
|
+
v.to_f / 100_0
|
14
|
+
end
|
15
|
+
define_column :eip
|
16
|
+
define_column :esp
|
17
|
+
define_column :egid, &:to_i
|
18
|
+
define_column :egroup
|
19
|
+
define_column :etime, "ELAPSED"
|
20
|
+
define_column :etimes, "ELAPSED", &:to_i
|
21
|
+
define_column :f, &:to_i
|
22
|
+
define_column :fgid, &:to_i
|
23
|
+
define_column :fgroup
|
24
|
+
define_column :fname
|
25
|
+
define_column :fuid, &:to_i
|
26
|
+
define_column :fuser
|
27
|
+
define_column :ignored
|
28
|
+
define_column :ipcns, "IPCNS", Address_10
|
29
|
+
define_column :label
|
30
|
+
define_column :lstart, "STARTED"
|
31
|
+
define_column :lsession
|
32
|
+
define_column :lwp, &:to_i
|
33
|
+
define_column :machine
|
34
|
+
define_column :maj_flt
|
35
|
+
define_column :min_flt
|
36
|
+
define_column :mntns, "MNTNS", Address_10
|
37
|
+
define_column :netns, "NETNS", Address_10
|
38
|
+
define_column :ouid, "OWNER", &:to_i
|
39
|
+
define_column :pending
|
40
|
+
define_column :pidns, &:to_i
|
41
|
+
define_column :policy, "POL", SchedulingPolicy
|
42
|
+
define_column :pri, &:to_i
|
43
|
+
define_column :psr, &:to_i
|
44
|
+
define_column :sched, "SCH" do |v|
|
45
|
+
SchedulingPolicy.(v.to_i)
|
46
|
+
end
|
47
|
+
define_column :seat
|
48
|
+
define_column :suid, &:to_i
|
49
|
+
define_column :suser
|
50
|
+
define_column :supgid, &:to_i
|
51
|
+
define_column :supgrp
|
52
|
+
define_column :sgi_p, "SGI_P", Address[null: "*".freeze]
|
53
|
+
define_column :slice
|
54
|
+
define_column :spid, &:to_i
|
55
|
+
define_column :stackp, "STACKP", Address_16
|
56
|
+
define_column :svgid, &:to_i
|
57
|
+
define_column :svuid, &:to_i
|
58
|
+
define_column :tpgid, &:to_i
|
59
|
+
define_column :ucmd, "CMD"
|
60
|
+
define_column :unit
|
61
|
+
define_column :utsns, &:to_i
|
62
|
+
define_column :uunit
|
63
|
+
define_column :vsz, Memsize
|
64
|
+
|
65
|
+
alias_column :class, :cls
|
66
|
+
alias_column :flag, :f
|
67
|
+
alias_column :flags, :f
|
68
|
+
alias_column :sig, :pending
|
69
|
+
alias_column :sig_block, :blocked
|
70
|
+
alias_column :sigmask, :blocked
|
71
|
+
alias_column :sig_catch, :caught
|
72
|
+
alias_column :sigcatch, :caught
|
73
|
+
alias_column :sig_ignore, :ignored
|
74
|
+
alias_column :sigignore, :ignored
|
75
|
+
alias_column :ucomm, :comm
|
76
|
+
alias_column :vsize, :vsz
|
77
|
+
end
|
78
|
+
end
|
data/lib/procps/ps.rb
CHANGED
@@ -1,11 +1,30 @@
|
|
1
|
-
require 'procps/ps/columns'
|
2
1
|
require 'procps/ps/command_builder'
|
3
2
|
|
4
3
|
module Procps
|
4
|
+
# By default it loads only base columns.
|
5
|
+
# To load extra columns require <tt>procps/ps/extra_columns</tt> after the gem is loaded.
|
6
|
+
#
|
7
|
+
# You can also define custom columns with the Procps::PS.define_column method.
|
5
8
|
class PS
|
6
9
|
DEFAULT_BIN_PATH = "/usr/bin/ps"
|
7
10
|
DEFAULT_COLUMNS = %i(pid rss pcpu)
|
8
11
|
|
12
|
+
def self.columns
|
13
|
+
@@columns ||= {}
|
14
|
+
end
|
15
|
+
|
16
|
+
# Define a column (see base columns in <tt>lib/procps/ps/base_columns.rb
|
17
|
+
# </tt> and extra columns in <tt>lib/procps/ps/extra_columns.rb</tt>)
|
18
|
+
def self.define_column(name, header = nil, cast = nil, &cast_block)
|
19
|
+
header ||= name.to_s.upcase
|
20
|
+
columns[name.downcase.to_sym] = Column.new(header, cast, &cast_block)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Creates an alias to a column
|
24
|
+
def self.alias_column(new_name, old_name)
|
25
|
+
columns[new_name.to_sym] = old_name.to_sym
|
26
|
+
end
|
27
|
+
|
9
28
|
attr_accessor :bin_path, :options, :modifiers
|
10
29
|
|
11
30
|
# Creates a Procps::PS object. Takes an argument with a bin path to ps command.
|
@@ -148,4 +167,4 @@ module Procps
|
|
148
167
|
process
|
149
168
|
end
|
150
169
|
end
|
151
|
-
end
|
170
|
+
end
|
data/lib/procps/version.rb
CHANGED
data/lib/procps.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: procps-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Semenov
|
@@ -60,8 +60,9 @@ files:
|
|
60
60
|
- lib/procps/column_types/memsize.rb
|
61
61
|
- lib/procps/column_types/scheduling_policy.rb
|
62
62
|
- lib/procps/ps.rb
|
63
|
-
- lib/procps/ps/
|
63
|
+
- lib/procps/ps/base_columns.rb
|
64
64
|
- lib/procps/ps/command_builder.rb
|
65
|
+
- lib/procps/ps/extra_columns.rb
|
65
66
|
- lib/procps/version.rb
|
66
67
|
- procps-rb.gemspec
|
67
68
|
homepage: https://github.com/estum/procps-rb
|
data/lib/procps/ps/columns.rb
DELETED
@@ -1,138 +0,0 @@
|
|
1
|
-
require 'procps/column'
|
2
|
-
require 'procps/column_types/command'
|
3
|
-
require 'procps/column_types/memsize'
|
4
|
-
require 'procps/column_types/scheduling_policy'
|
5
|
-
|
6
|
-
module Procps
|
7
|
-
class PS
|
8
|
-
Address = -> (base = 10, null: "-".freeze) { -> (v) { v.is_a?(String) ? v == null ? nil : v.to_i(base) : v } }
|
9
|
-
Address_10 = Address[]
|
10
|
-
Address_16 = Address[16]
|
11
|
-
|
12
|
-
@@columns = {
|
13
|
-
:blocked => Column.new("BLOCKED"),
|
14
|
-
:bsdstart => Column.new("START"),
|
15
|
-
:bsdtime => Column.new("TIME"),
|
16
|
-
:c => Column.new("C", &:to_f),
|
17
|
-
:caught => Column.new("CAUGHT"),
|
18
|
-
:cgroup => Column.new("CGROUP"),
|
19
|
-
:cls => Column.new("CLS", SchedulingPolicy),
|
20
|
-
:cmd => Column.new("CMD", Command),
|
21
|
-
:comm => Column.new("COMMAND"),
|
22
|
-
:command => Column.new("COMMAND", Command),
|
23
|
-
:cp => Column.new("CP") { |v| v.to_f / 100_0 }, # tenths of a percent
|
24
|
-
:egid => Column.new("EGID", &:to_i),
|
25
|
-
:egroup => Column.new("EGROUP"),
|
26
|
-
:eip => Column.new("EIP"),
|
27
|
-
:esp => Column.new("ESP"),
|
28
|
-
:etime => Column.new("ELAPSED"),
|
29
|
-
:etimes => Column.new("ELAPSED", &:to_i),
|
30
|
-
:f => Column.new("F", &:to_i),
|
31
|
-
:fgid => Column.new("FGID", &:to_i),
|
32
|
-
:fgroup => Column.new("FGROUP"),
|
33
|
-
:fname => Column.new("FNAME"),
|
34
|
-
:fuid => Column.new("FUID", &:to_i),
|
35
|
-
:fuser => Column.new("FUSER"),
|
36
|
-
:gid => Column.new("GID", &:to_i),
|
37
|
-
:group => Column.new("GROUP"),
|
38
|
-
:ignored => Column.new("IGNORED"),
|
39
|
-
:ipcns => Column.new("IPCNS", Address_10),
|
40
|
-
:label => Column.new("LABEL"),
|
41
|
-
:lstart => Column.new("STARTED"),
|
42
|
-
:lsession => Column.new("SESSION"),
|
43
|
-
:lwp => Column.new("LWP", &:to_i),
|
44
|
-
:machine => Column.new("MACHINE"),
|
45
|
-
:maj_flt => Column.new("MAJFLT"),
|
46
|
-
:min_flt => Column.new("MINFLT"),
|
47
|
-
:mntns => Column.new("MNTNS", Address_10),
|
48
|
-
:netns => Column.new("NETNS", Address_10),
|
49
|
-
:ni => Column.new("NI", &:to_i),
|
50
|
-
:nlwp => Column.new("NLWP", &:to_i),
|
51
|
-
:nwchan => Column.new("WCHAN", Address_16),
|
52
|
-
:ouid => Column.new("OWNER", &:to_i),
|
53
|
-
:pending => Column.new("PENDING"),
|
54
|
-
:pcpu => Column.new("%CPU", &:to_f),
|
55
|
-
:pgid => Column.new("PGID", &:to_i),
|
56
|
-
:pgrp => Column.new("PGRP", &:to_i),
|
57
|
-
:pid => Column.new("PID", &:to_i),
|
58
|
-
:pidns => Column.new("PIDNS", &:to_i),
|
59
|
-
:pmem => Column.new("%MEM", &:to_f),
|
60
|
-
:policy => Column.new("POL", SchedulingPolicy),
|
61
|
-
:ppid => Column.new("PPID", &:to_i),
|
62
|
-
:pri => Column.new("PRI", &:to_i),
|
63
|
-
:psr => Column.new("PSR", &:to_i),
|
64
|
-
:rgid => Column.new("RGID", &:to_i),
|
65
|
-
:rgroup => Column.new("RGROUP"),
|
66
|
-
:rss => Column.new("RSS", Memsize),
|
67
|
-
:rtprio => Column.new("RTPRIO", Address_10),
|
68
|
-
:ruid => Column.new("RUID", &:to_i),
|
69
|
-
:ruser => Column.new("RUSER"),
|
70
|
-
:s => Column.new("S"),
|
71
|
-
:sched => Column.new("SCH") { |v| SchedulingPolicy.(v.to_i) },
|
72
|
-
:seat => Column.new("SEAT"),
|
73
|
-
:sess => Column.new("SESS", &:to_i),
|
74
|
-
:sgi_p => Column.new("SGI_P", Address[null: "*".freeze]),
|
75
|
-
:sgid => Column.new("SGID", &:to_i),
|
76
|
-
:sgroup => Column.new("SGROUP"),
|
77
|
-
:sid => Column.new("SID", &:to_i),
|
78
|
-
:size => Column.new("SIZE", &:to_i),
|
79
|
-
:slice => Column.new("SLICE"),
|
80
|
-
:spid => Column.new("SPID", &:to_i),
|
81
|
-
:stackp => Column.new("STACKP", Address_16),
|
82
|
-
:start => Column.new("STARTED"),
|
83
|
-
:start_time => Column.new("START_TIME"),
|
84
|
-
:stat => Column.new("STAT"),
|
85
|
-
:suid => Column.new("SUID", &:to_i),
|
86
|
-
:suser => Column.new("SUSER"),
|
87
|
-
:supgid => Column.new("SUPGID", &:to_i),
|
88
|
-
:supgrp => Column.new("SUPGRP"),
|
89
|
-
:svgid => Column.new("SVGID", &:to_i),
|
90
|
-
:svuid => Column.new("SVUID", &:to_i),
|
91
|
-
:sz => Column.new("SZ", &:to_i),
|
92
|
-
:tgid => Column.new("TGID", &:to_i),
|
93
|
-
:thcount => Column.new("THCNT", &:to_i),
|
94
|
-
:tid => Column.new("TID", &:to_i),
|
95
|
-
:time => Column.new("TIME"),
|
96
|
-
:tname => Column.new("TTY"),
|
97
|
-
:tpgid => Column.new("TPGID", &:to_i),
|
98
|
-
:tt => Column.new("TT"),
|
99
|
-
:ucmd => Column.new("CMD"),
|
100
|
-
:uid => Column.new("UID", &:to_i),
|
101
|
-
:unit => Column.new("UNIT"),
|
102
|
-
:user => Column.new("USER"),
|
103
|
-
:userns => Column.new("USERNS", &:to_i),
|
104
|
-
:utsns => Column.new("UTSNS", &:to_i),
|
105
|
-
:uunit => Column.new("UUNIT"),
|
106
|
-
:vsz => Column.new("VSZ", Memsize)
|
107
|
-
}.tap do |cols|
|
108
|
-
cols.update(
|
109
|
-
:'%cpu' => cols.fetch(:pcpu),
|
110
|
-
:'%mem' => cols.fetch(:pmem),
|
111
|
-
:args => cols.fetch(:command),
|
112
|
-
:class => cols.fetch(:cls),
|
113
|
-
:cputime => cols.fetch(:time),
|
114
|
-
:flag => cols.fetch(:f),
|
115
|
-
:flags => cols.fetch(:f),
|
116
|
-
:nice => cols.fetch(:ni),
|
117
|
-
:rssize => cols.fetch(:rss),
|
118
|
-
:rsz => cols.fetch(:rss),
|
119
|
-
:sig => cols.fetch(:pending),
|
120
|
-
:sig_block => cols.fetch(:blocked),
|
121
|
-
:sigmask => cols.fetch(:blocked),
|
122
|
-
:sig_catch => cols.fetch(:caught),
|
123
|
-
:sigcatch => cols.fetch(:caught),
|
124
|
-
:sig_ignore => cols.fetch(:ignored),
|
125
|
-
:sigignore => cols.fetch(:ignored),
|
126
|
-
:state => cols.fetch(:s),
|
127
|
-
:tty => cols.fetch(:tt),
|
128
|
-
:ucomm => cols.fetch(:comm),
|
129
|
-
:uname => cols.fetch(:user),
|
130
|
-
:vsize => cols.fetch(:vsz)
|
131
|
-
)
|
132
|
-
end
|
133
|
-
|
134
|
-
def self.columns
|
135
|
-
@@columns
|
136
|
-
end
|
137
|
-
end
|
138
|
-
end
|