sys-proctable 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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