sys-proctable 0.7.3 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
- == Description
1
+ = Description
2
2
  sys-proctable
3
3
 
4
4
  A Ruby version of the 'ps' command. This is a C extension, not parsed
5
5
  output. For Linux, process information is read out of /proc.
6
6
 
7
- == Synopsis
7
+ = Synopsis
8
8
  require 'sys/proctable'
9
9
  include Sys
10
10
 
@@ -32,70 +32,55 @@
32
32
  ...
33
33
  end
34
34
 
35
- == Constants
35
+ = Constants
36
36
  VERSION
37
- Returns the current version number for this package (as a string).
37
+ Returns the current version number for this package (as a string).
38
38
 
39
- == Class Methods
39
+ = Class Methods
40
40
  ProcTable.fields
41
- Returns a list of fields available on the current OS. May also take a
42
- block.
41
+ Returns a list of fields available on the current OS. May also take a
42
+ block.
43
43
 
44
44
  ProcTable.ps(pid=nil)
45
45
  ProcTable.ps{ |s| ... }
46
- If no pid's or processes are included as arguments, in block form it
47
- returns a struct of type ProcTableStruct for every process in the proc
48
- table. Otherwise it returns an array of ProcTableStruct's.
46
+ If no pid's or processes are included as arguments, in block form it
47
+ returns a struct of type ProcTableStruct for every process in the proc
48
+ table. Otherwise it returns an array of ProcTableStruct's.
49
49
 
50
- If a process id is provided, a single ProcTable struct is returned, or
51
- nil if the pid is not found.
50
+ If a process id is provided, a single ProcTable struct is returned, or
51
+ nil if the pid is not found.
52
52
 
53
- == Exception Classes
53
+ = Exception Classes
54
54
  ProcTableError < StandardError
55
- Raised if the /proc field is unreadable and/or unmounted.
55
+ Raised if the /proc field is unreadable and/or unmounted.
56
56
 
57
- == Supported fields
58
- You can view the supported fields with the "fields()" class method.
57
+ = Supported fields
58
+ You can view the supported fields with the "fields()" class method.
59
59
 
60
- == Future Plans
61
- Create a pure Ruby version as an alternative.
62
- Change the ttynum field to ttydev and return a string instead of an int.
60
+ = Future Plans
61
+ Create a pure Ruby version as an alternative.
62
+ Change the ttynum field to ttydev and return a string instead of an int.
63
63
 
64
- == Known Bugs
65
- None known. Please log any bugs on the project page at
66
- http://www.rubyforge.org/projects/sysutils
64
+ = Known Bugs
65
+ None known. Please log any bugs on the project page at
66
+ http://www.rubyforge.org/projects/sysutils
67
67
 
68
- == License
69
- Ruby's
68
+ = License
69
+ Ruby's
70
70
 
71
- == Copyright
72
- (C) 2003-2005 Daniel J. Berger
71
+ = Copyright
72
+ (C) 2003-2006 Daniel J. Berger
73
73
  All Rights Reserved
74
74
 
75
- == Warranty
76
- This package is provided "as is" and without any express or
77
- implied warranties, including, without limitation, the implied
78
- warranties of merchantability and fitness for a particular purpose.
79
-
80
- == Author
81
- Daniel J. Berger
82
- djberg96 at yahoo dot com
83
- rubyhacker1/imperator on IRC
84
-
85
- == Credits
86
- This module is largely based on the Perl module Proc::ProcessTable by
87
- Dan Urist. Many ideas, as well as large chunks of code, were taken
88
- from his work. So, a big THANK YOU goes out to Dan Urist.
89
-
90
- A big thanks also goes out to Mike Hall who was very helpful with ideas,
91
- logic and testing.
92
-
93
- Thanks also go to Sean Chittenden for providing an account on one of his
94
- FreeBSD machines. This is how the FreeBSD support was (initially) added.
95
-
96
- Thanks go to James Hranicky for providing a patch that grabs name, eid,
97
- euid, gid and guid info in the Linux version, along with some general
98
- debugging help.
75
+ = Warranty
76
+ This package is provided "as is" and without any express or
77
+ implied warranties, including, without limitation, the implied
78
+ warranties of merchantability and fitness for a particular purpose.
79
+
80
+ = Author
81
+ Daniel J. Berger
82
+ djberg96 at nospam at gmail dot com
83
+ rubyhacker1 on IRC (Freenode)
99
84
 
100
- == See Also
85
+ = See Also
101
86
  ps, proc(5)
@@ -1,10 +1,10 @@
1
- == Description
1
+ = Description
2
2
  sys-proctable
3
3
 
4
4
  A Ruby version of the 'ps' command. This is a C extension, not parsed
5
5
  output. For Solaris, data is read out of /proc via the psinfo struct.
6
6
 
7
- == Synopsis
7
+ = Synopsis
8
8
  require 'sys/proctable'
9
9
  include Sys
10
10
 
@@ -30,91 +30,71 @@
30
30
  ...
31
31
  end
32
32
 
33
- == Constants
33
+ = Constants
34
34
  VERSION
35
- Returns the current version number for this package (as a string).
35
+ Returns the current version number for this package (as a string).
36
36
 
37
- == Class Methods
37
+ = Class Methods
38
38
  ProcTable.fields
39
- Returns a list of fields available on the current OS. May also take
40
- a block.
39
+ Returns a list of fields available on the current OS. May also take
40
+ a block.
41
41
 
42
42
  ProcTable.ps(pid=nil)
43
43
  ProcTable.ps{ |s| ... }
44
- If no pid is included as an argument, in block form it
45
- returns a struct of type ProcTableStruct for every process in the proc
46
- table. Otherwise it returns an array of ProcTable struct's. If a pid
47
- is provided it will return a single ProcTable struct for that pid, or
48
- nil if it is not found.
44
+ If no pid is included as an argument, in block form it
45
+ returns a struct of type ProcTableStruct for every process in the proc
46
+ table. Otherwise it returns an array of ProcTable struct's. If a pid
47
+ is provided it will return a single ProcTable struct for that pid, or
48
+ nil if it is not found.
49
49
 
50
- == Exception Classes
50
+ = Exception Classes
51
51
  ProcTableError < StandardError
52
- Raised if the /proc directory is unreadable and/or unmounted.
52
+ Raised if the /proc directory is unreadable and/or unmounted.
53
53
 
54
- == Supported fields
55
- You can view the supported fields with the "fields()" class method.
54
+ = Supported fields
55
+ You can view the supported fields with the "fields()" class method.
56
56
 
57
- == Future Plans
58
- Return a more meaningful result for the wchan member (2.6+).
59
- Add env info where possible.
57
+ = Future Plans
58
+ Return a more meaningful result for the wchan member (2.6+).
59
+ Add env info where possible.
60
60
 
61
- == Notes
62
- The "comm" field isn't really part of the psinfo struct. It is just a copy
63
- (i.e. is identical to) the "fname" field. I added it to provide a degree
64
- of consistency between all of the platforms. I will also make a point
65
- of adding it to any future platform releases.
61
+ = Notes
62
+ The "comm" field isn't really part of the psinfo struct. It is just a copy
63
+ (i.e. is identical to) the "fname" field. I added it to provide a degree
64
+ of consistency between all of the platforms. I will also make a point
65
+ of adding it to any future platform releases.
66
66
 
67
- The cmdline string is limited to 80 characters, except for those processes
68
- which you (or your program) own.
67
+ The cmdline string is limited to 80 characters, except for those processes
68
+ which you (or your program) own.
69
69
 
70
- The ttydev field is, for now, an integer. If there is no associated tty with
71
- the process, a -1 is returned. In the future, this field will be changed to
72
- a string (i.e. the actual device name).
70
+ The ttydev field is, for now, an integer. If there is no associated tty with
71
+ the process, a -1 is returned. In the future, this field will be changed to
72
+ a string (i.e. the actual device name).
73
73
 
74
- I suppose I *could* add a -lkvm version for Solaris (this is what Dan Urist
75
- is now using in Proc::ProcessTable) but I haven't found a compelling reason
76
- to do so. If you think you have one, please let me know.
74
+ I suppose I *could* add a -lkvm version for Solaris (this is what Dan Urist
75
+ is now using in Proc::ProcessTable) but I haven't found a compelling reason
76
+ to do so. If you think you have one, please let me know.
77
77
 
78
- == Known Bugs
79
- If you're using Ruby 1.8.x there is a known issue with large file support.
80
- There are only two solutions that I am aware of currently. You can either
81
- rebuild Ruby with the --disable-largefile option or you can build a 64 bit
82
- Ruby.
83
-
84
- I have posted this issue to the mailing list, but have not received a
85
- satisfactory response. I suspect there is an issue with the configure
86
- script, because this does not happen with Ruby 1.6.x.
87
-
88
- Please log any additional bugs on the SourceForge project page at
89
- http://www.rubyforge.org/projects/sysutils
78
+ = Known Bugs
79
+ None that I am aware of. Please log any bugs on the RubyForge project page at
80
+ http://www.rubyforge.org/projects/sysutils
90
81
 
91
- == License
92
- Ruby's
82
+ = License
83
+ Ruby's
93
84
 
94
- == Copyright
95
- (C) 2003-2005 Daniel J. Berger
96
- All Rights Reserved.
85
+ = Copyright
86
+ (C) 2003-2006 Daniel J. Berger
87
+ All Rights Reserved.
97
88
 
98
- == Warranty
99
- This package is provided "as is" and without any express or
100
- implied warranties, including, without limitation, the implied
101
- warranties of merchantability and fitness for a particular purpose.
89
+ = Warranty
90
+ This package is provided "as is" and without any express or
91
+ implied warranties, including, without limitation, the implied
92
+ warranties of merchantability and fitness for a particular purpose.
102
93
 
103
- == Author
104
- Daniel J. Berger
105
- djberg96 at yahoo dot com
106
- imperator/rubyhacker1 on IRC (Freenode)
107
-
108
- == Credits
109
- This module is largely based on the Perl module Proc::ProcessTable by
110
- Dan Urist. Many ideas, as well as large chunks of code, were taken
111
- from his work. So, a big THANK YOU goes out to Dan Urist.
112
-
113
- A big thanks also goes out to Mike Hall who was very helpful with ideas,
114
- logic and testing.
115
-
116
- Thanks also go to Sean Chittenden for providing an account on one of his
117
- FreeBSD machines. This is how the FreeBSD support was (initially) added.
94
+ = Author
95
+ Daniel J. Berger
96
+ djberg96 at nospam at gmail dot com
97
+ imperator on IRC (Freenode)
118
98
 
119
- == See Also
120
- ps, proc
99
+ = See Also
100
+ ps, proc
@@ -1,54 +1,53 @@
1
- == Description
2
- A simple 'top' interface for Ruby
3
-
4
- == Prerequisites
5
- Requires the "sys/proctable" package (which should be installed along
6
- with this package).
7
-
8
- == Synopsis
9
- require "sys/top"
10
- include Sys
11
-
12
- Top.top(5).each{ |ps|
13
- p ps
14
- }
1
+ = Description
2
+ A simple 'top' interface for Ruby
3
+
4
+ = Prerequisites
5
+ Requires the "sys/proctable" package (which should be installed along
6
+ with this package).
7
+
8
+ = Synopsis
9
+ require "sys/top"
10
+ include Sys
11
+
12
+ Top.top(5).each{ |ps|
13
+ p ps
14
+ }
15
15
 
16
- == Constants
16
+ = Constants
17
17
  VERSION
18
- Returns the version number of this package as a String.
18
+ Returns the version number of this package as a String.
19
19
 
20
- == Class Methods
20
+ = Class Methods
21
21
  Top.top(number=10, field="pctcpu")
22
+ Returns an array of ProcTableStruct's. The size of the array (i.e. the
23
+ number of processes) that it returns is based on +number+, and sorted by
24
+ +pctcpu+. By default, the size and field values are 10 and "pctcpu",
25
+ respectively.
22
26
 
23
- Returns an array of ProcTableStruct's. The size of the array (i.e. the
24
- number of processes) that it returns is based on +number+, and sorted by
25
- +pctcpu+. By default, the size and field values are 10 and "pctcpu",
26
- respectively.
27
-
28
- == Notes
29
- Not all fields are available on all platforms. Please check your
30
- platform specific documentation for which fields are available.
31
-
32
- I used sort() instead of sort_by() internally to maintain backward
33
- compatability with Ruby 1.6.8, which I happen to need.
27
+ = Notes
28
+ Not all fields are available on all platforms. Please check your
29
+ platform specific documentation for which fields are available.
30
+
31
+ I used sort() instead of sort_by() internally to maintain backward
32
+ compatability with Ruby 1.6.8, which I happen to need.
34
33
 
35
- == Bugs
36
- None that I'm aware of. Please log bug reports on the project page at
37
- http://www.rubyforge.org/projects/sysutils
34
+ = Bugs
35
+ None that I'm aware of. Please log bug reports on the project page at
36
+ http://www.rubyforge.org/projects/sysutils
38
37
 
39
- == License
40
- Ruby's
38
+ = License
39
+ Ruby's
41
40
 
42
- == Copyright
43
- (C) 2004-2005 Daniel J. Berger
44
- All Rights Reserved.
41
+ = Copyright
42
+ (C) 2004-2006 Daniel J. Berger
43
+ All Rights Reserved.
45
44
 
46
- == Warranty
47
- This package is provided "as is" and without any express or
48
- implied warranties, including, without limitation, the implied
49
- warranties of merchantability and fitness for a particular purpose.
50
-
51
- == Author
52
- Daniel J. Berger
53
- djberg96 at yahoo dot com
54
- imperator/rubyhacker1 on IRC (Freenode)
45
+ = Warranty
46
+ This package is provided "as is" and without any express or
47
+ implied warranties, including, without limitation, the implied
48
+ warranties of merchantability and fitness for a particular purpose.
49
+
50
+ = Author
51
+ Daniel J. Berger
52
+ djberg96 at nospam at gmail dot com
53
+ imperator on IRC (Freenode)
@@ -1,8 +1,8 @@
1
- == Description
1
+ = Description
2
2
  A Ruby interface for gathering process information. For MS Windows,
3
3
  the process information is gathered via OLE + WMI, using pure Ruby.
4
4
 
5
- == Synopsis
5
+ = Synopsis
6
6
  require 'sys/proctable'
7
7
  include Sys
8
8
 
@@ -30,32 +30,32 @@
30
30
  ...
31
31
  end
32
32
 
33
- == Constants
33
+ = Constants
34
34
  VERSION
35
- Returns the current version number for this package (as a string).
35
+ Returns the current version number for this package (as a string).
36
36
 
37
- == Class Methods
37
+ = Class Methods
38
38
  ProcTable.fields
39
- Returns an Array of fields available on the current OS in the
40
- ProcTableStruct.
39
+ Returns an Array of fields available on the current OS in the
40
+ ProcTableStruct.
41
41
 
42
42
  ProcTable.ps(pid=nil, host='localhost')
43
43
  ProcTable.ps{ |s| ... }
44
- Returns a struct of type ProcTableStruct for every process in the proc
45
- table in block form. Otherwise it returns an array of ProcTableStruct's.
44
+ Returns a struct of type ProcTableStruct for every process in the proc
45
+ table in block form. Otherwise it returns an array of ProcTableStruct's.
46
46
 
47
- If 'pid' is provided, then only a struct for that pid is returned, or
48
- nil if it is not found.
49
-
50
- If 'host' is provided, then processes from that host are gathered. By
51
- default, process information is gathered on the local host.
47
+ If 'pid' is provided, then only a struct for that pid is returned, or
48
+ nil if it is not found.
49
+
50
+ If 'host' is provided, then processes from that host are gathered. By
51
+ default, process information is gathered on the local host.
52
52
 
53
- == Supported fields
54
- The currently supported fields for MS Windows (i.e. your ProcTable struct
55
- members) are:
53
+ = Supported fields
54
+ The currently supported fields for MS Windows (i.e. your ProcTable struct
55
+ members) are:
56
56
 
57
- caption, cmdline, comm, creation_class_name, creation_date,
58
- cs_creation_class_name, cs_name, description, executable_path,
57
+ caption, cmdline, comm, creation_class_name, creation_date,
58
+ cs_creation_class_name, cs_name, description, executable_path,
59
59
  execution_state, handle, handle_count, install_date, kernel_mode_time,
60
60
  maximum_working_set_size, minimum_working_set_size, name,
61
61
  os_creation_class_name, os_name, other_operation_count,
@@ -70,53 +70,53 @@ ProcTable.ps{ |s| ... }
70
70
 
71
71
  You can also view them with the fields() class method.
72
72
 
73
- == Notes
74
- For the sake of attempting to provide a somewhat common API, the 'comm'
75
- and 'cmdline' fields have been included as part of the structure. The
76
- 'comm' member corresponds to the Name attribute of Win32_Process. The
77
- 'cmdline' attribute corresponds to either the Executable_Path attribute
78
- (on Windows 2000 or earlier) or the CommandLine attribute (on Windows XP
79
- and later).
73
+ = Notes
74
+ For the sake of attempting to provide a somewhat common API, the 'comm'
75
+ and 'cmdline' fields have been included as part of the structure. The
76
+ 'comm' member corresponds to the Name attribute of Win32_Process. The
77
+ 'cmdline' attribute corresponds to either the Executable_Path attribute
78
+ (on Windows 2000 or earlier) or the CommandLine attribute (on Windows XP
79
+ and later).
80
80
 
81
- Also note that the ProcessId and ParentProcessId attributes have been
82
- abbreviated as 'pid' and 'ppid' in the struct members, again to keep the
83
- members more consistent between platforms.
81
+ Also note that the ProcessId and ParentProcessId attributes have been
82
+ abbreviated as 'pid' and 'ppid' in the struct members, again to keep the
83
+ members more consistent between platforms.
84
84
 
85
- The "Mem Usage" and "VM Size" that you may be used to seeing in your Task
86
- Manager window (probably) correspond to the 'working_set_size' and
87
- 'page_file_usage' struct members, respectively, keeping in mind that
88
- those values are in bytes, not kilobytes. I say 'probably' because
89
- comments that I've read online indicate that it may not always line up
90
- with what you see in the Task Manager, based on the current version (or
91
- even Service Pack) of Windows that you are using.
85
+ The "Mem Usage" and "VM Size" that you may be used to seeing in your Task
86
+ Manager window (probably) correspond to the 'working_set_size' and
87
+ 'page_file_usage' struct members, respectively, keeping in mind that
88
+ those values are in bytes, not kilobytes. I say 'probably' because
89
+ comments that I've read online indicate that it may not always line up
90
+ with what you see in the Task Manager, based on the current version (or
91
+ even Service Pack) of Windows that you are using.
92
92
 
93
- == Future Plans
94
- Possibly use the Win32_PerfFormattedData_PerfProc_Process class to get
95
- additional process information.
93
+ = Future Plans
94
+ Possibly use the Win32_PerfFormattedData_PerfProc_Process class to get
95
+ additional process information.
96
96
 
97
- == Known Bugs
98
- Versions of Ruby earlier than 1.8.2 resulted in segfaults when trying to
99
- run this code. You will likely encounter the same behavior.
100
-
101
- Please log any additional bug reports on the project page at
102
- http://www.rubyforge.org/projects/sysutils
97
+ = Known Bugs
98
+ Versions of Ruby earlier than 1.8.2 resulted in segfaults when trying to
99
+ run this code. You will likely encounter the same behavior.
100
+
101
+ Please log any additional bug reports on the project page at
102
+ http://www.rubyforge.org/projects/sysutils
103
103
 
104
- == License
105
- Ruby's
104
+ = License
105
+ Ruby's
106
106
 
107
- == Copyright
108
- (C) 2003-2005 Daniel J. Berger
109
- All Rights Reserved
107
+ = Copyright
108
+ (C) 2003-2006 Daniel J. Berger
109
+ All Rights Reserved
110
110
 
111
- == Warranty
112
- This package is provided "as is" and without any express or
113
- implied warranties, including, without limitation, the implied
114
- warranties of merchantability and fitness for a particular purpose.
111
+ = Warranty
112
+ This package is provided "as is" and without any express or
113
+ implied warranties, including, without limitation, the implied
114
+ warranties of merchantability and fitness for a particular purpose.
115
115
 
116
- == Author
117
- Daniel J. Berger
118
- djberg96 at yahoo dot com
119
- imperator/mok/rubyhacker1 on IRC (freenode)
116
+ = Author
117
+ Daniel J. Berger
118
+ djberg96 at nospam at gmail dot com
119
+ imperator on IRC (freenode)
120
120
 
121
- == See Also
122
- OLE + WMI
121
+ = See Also
122
+ OLE + WMI