README
1Proc::ProcessTable
2
3Please use rt.cpan.org to submit bugs and patches.
4
5MAINTENANCE STATUS
6==================
7This module is now being lightly "maintained" by Jonathan Swartz <swartz@pobox.com>. I
8have nearly zero knowledge of the implementation within but wanted to rescue the
9distribution from abandonment and try to get critical bug fixes out. This will need to be
10a community effort.
11
12The source is in github -
13
14 https://github.com/jwbargsten/perl-proc-processtable
15
16Commit bits will be generously granted, send me your github id.
17
18STATUS
19======
20This is BETA software; it seems to work, but use at your own risk :)
21
22Currently works on darwin, nonstop-ux, Windows (both native MSWin32 and Cygwin), linux,
23solaris, aix, hpux, freebsd, irix, dec_osf, bsdi, netbsd, unixware 7.x,
24SunOS and openbsd. Please see the "README.osname" files for details on
25individual os implementations. Please see the file PORTING if you are
26interested in making it work on something else. Please see the file
27TODO for a list of issues that need to be addressed (and send me
28patches!).
29
30Please note that the Windows port is derived from Cygwin code and is therefore covered
31by the Cygwin license (http://cygwin.com/licensing.html).
32
33Multithread support is now available for Solaris; please see
34README.solaris for info. It may work under other OS's as well; please
35let me know if it does.
36
37Comments, bug reports, patches and especially ports are greatly
38appreciated. If you want to submit a patch, *please* use standard
39context-diff format; if you're submitting a port, a tarball of the new
40files is great.
41
42DESCRIPTION
43===========
44This module is a first crack at providing a consistent interface to
45Unix (and maybe other multitasking OS's) process table information.
46The impetus for this came about with my frustration at having to parse
47the output of various systems' ps commands to check whether specific
48processes were running on different boxes at a larged mixed Unix site.
49The output format of ps was different on each OS, and sometimes
50changed with each new release of an OS. Also, running a ps subprocess
51from within a perl or shell script and parsing the output was not a
52very efficient or aesthetic way to do things.
53
54With this module, you can do things like this:
55
56 # kill memory pigs
57 use Proc::ProcessTable;
58
59 my $t = Proc::ProcessTable->new;
60 foreach my $p ( @{$t->table} ) {
61 if( $p->pctmem > 95 ){
62 $p->kill(9);
63 }
64 }
65
66There is another short example in the file "example.pl" in the
67distribution. For a more elaborate example (in German), see
68<http://www.linux-magazin.de/ausgabe.1999.02/Proc/proc.html>.
69<shameless plug> If you can't read German, try my other module,
70WWW::Babelfish!</shameless plug>
71
72There are also two contributed modules: a module called Proc::Killall
73contributed by Aaron Sherman to kill all processes whose command-lines
74match a given pattern, and a module called Proc::Killfam by Stephen
75Lidie to kill a list of processes and their children. These modules
76are installed along with Proc::ProcessTable. Pod documentation is
77included in both of them.
78
79
80INSTALLATION
81============
82This module needs the File::Find and Storable modules in order to
83work. File::Find is generally included with perl distributions;
84Storable is available from CPAN.
85
86After unpacking the tar file, do:
87
88 perl Makefile.PL
89 make
90 make test
91 make install
92
93There is embedded POD documentation in ProcessTable.pm and
94Process/Process.pm.
95
96ACKNOWLEDGEMENTS
97================
98Thanks to the many people who have sent in ports and patches. Without
99them this module would be impossible to support on so many platforms.
100Patches are noted in the Changes file.
101
102David Paquet <David.Paquet@cnes.fr> AIX port
103Mike Romberg <romberg@fsl.noaa.gov> HPUX port
104Slaven Rezic <eserte@cs.tu-berlin.de> FreeBSD port
105W. Phillip Moore <wpm@ms.com> IRIX port
106Peter ? <hooft@natlab.research.philips.com> IRIX version patch
107Bernhard Schmalhofer <Bernhard.Schmalhofer@gmx.de> dec_osf port
108Sean Eskins <sean@gilasoft.com> bsdi port
109Peter Reich <pr@alles.prima.de> netbsd port
110Aaron Sherman <ajs@ajs.com> Proc::Killall module
111Steve Lidie <sol0@Lehigh.EDU> Killfam.pm module
112Martin Lucina <mato@catalyst.net.nz> Unixware 7.x port
113Shawn Clifford <shawn.a.clifford@lmco.com> SunOS port
114J Robert Ray <jrray@jrray.org> Windows (Cygwin) port.
115Tom Wyant <twyant3@comcast.net> Darwin port.
116Mike Steinert <mike.steinert@motorola.com>
117 Nonstop-UX port.
118<bsd@openbsd.rutgers.edu> Openbsd port.
119
120Please note that Bernard Schmalhofer is no longer able to provide
121support for the dec_osf port.
122
123COPYRIGHT
124=========
125Copyright (c) 1998-2008 Daniel J. Urist. All rights reserved.
126This package is free software; you can redistribute it and/or modify
127it under the same terms as Perl itself.
128
129--
130Daniel J. Urist
131durist@frii.com
132
README.MSWin32
1SUPPORTED ATTRIBUTES
2====================
3 uid UID of process
4 pid process ID
5 ppid parent process ID
6 fname file name
7 start start time (seconds since the epoch)
8 sid SID of process
9 user_name user name of process
10 domain_name domain name of process
11
README.aix
1port of Proc::ProcessTable under AIX
2
3New files
4=========
5
6os/aix.c
7os/aix.h
8hints/aix.pl
9README.aix
10
11Sample (low effort) application (please don't laugh ;)
12===============================
13minitop.pl
14xminitop
15
16
17Blah
18====
19
20o Documentation under AIX is rather cryptic and incomplete. I managed to read
21 the process table using undocumented calls : getproc, getuser, getargs.
22
23 I've read C code from Vic Abell <abe@purdue.edu> in lsof-4.36, Jussi Maki
24 <Jussi.Maki@csc.fi> and Marcel J.E. Mol <marcel@mesa.nl> in monitor-2.1.2
25
26 as well as a usenet news posted by Michael Wojcik <mike@raederle.mfltd.co.uk>
27 (Article: 63164 of comp.unix.aix, Date: 04/04/95)
28
29
30 [lsof is a really nice tool and provides C examples to read low-level
31 structures under nearly any UNIX system on earth. ]
32
33o my port was only tested under the following conditions :
34
35 AIX 4.1.5
36 perl 5.005_02
37
38o I am not a C programming terminator, so consider this as really ALPHA
39 software.
40
41o I wanted this tool to be usable by a non root user. This is why I don't read
42 /dev/kmem unlike Vic and Jussi.
43
44Bugs
45====
46
47o When mapping tty device numbers to names, I get a 'permission denied' message
48 due to the /dev/.SRC-unix directory whose perms are as follows :
49
50 drwxrwx--- 2 root system 512 Aug 12 11:26 .SRC-unix/
51
52 This dir contains only a few unix domain socket files used by IBM's System
53 Resource Controller, so it is of no interest for getting ttynames.
54
55 Maybe we should bind STDERR to /dev/null
56
57o I sometimes get :
58 "Can't access `pctmem' field in class Proc::ProcessTable::Process"
59
60 It comes from the AUTOLOAD function defined in Process.pm. How come we are
61 able to access fields like "pctcpu" but not "pctmem" ? I am puzzled.
62
63 We may chenge the 'croak' statement to a 'warn' but it'd be better if we
64 knew where this error comes from.
65
66o Hidden ones ? I bet there is some ...
67
68
69Thanks
70======
71Daniel J. Urist <durist@world.std.com>
72Vic Abell <abe@purdue.edu>
73Jussi Maki <Jussi.Maki@csc.fi>
74Cedric Le Goater <LE-GOATER_Cedric@stna.dgac.fr>
75Gregory Kurz <KURZ_Gregory@stna.dgac.fr>
76
77
78COPYRIGHT
79=========
80Copyright (c) 1998, Daniel J. Urist. All rights reserved. This
81package is free software; you can redistribute it and/or modify it
82under the same terms as Perl itself.
83
84Copyright (c) 1998, David Paquet. All rights reserved. This
85package is free software; you can redistribute it and/or modify it
86under the same terms as Perl itself.
87
88--
89David Paquet
90david-paquet@usa.net
README.bsdi
1 SUPPORTED ATTRIBUTES
2==================================
3uid UID of process
4gid GID of process
5pid process ID
6ppid parent process ID
7pgrp process group ID
8pri priority of process
9sess pointer to session
10leader pid of session leader
11time cpu time of process
12wchan address of current system call
13fname command name
14state state of process
15started time/day process started
16ttydev path of process' tty
17ttynum tty number of process
18cmndline command line of process
19
20
README.cygwin
1SUPPORTED ATTRIBUTES
2====================
3 uid UID of process
4 euid Effective UID of process
5 suid Saved UID of process
6 fuid File UID of process
7 gid GID of process
8 egid Effective GID of process
9 sgid Saved GID of process
10 fgid File GID of process
11 pid process ID
12 ppid parent process ID
13 pgrp process group
14 sess session ID
15 priority priority of process
16 ttynum tty number of process
17 flags flags of process
18 minflt minor page faults
19 cminflt child minor page faults
20 majflt major page faults
21 cmajflt child major page faults
22 utime user mode time (microseconds)
23 stime kernel mode time (microseconds)
24 cutime child utime (microseconds)
25 cstime child stime (microseconds)
26 time user + system time (microseconds)
27 ctime child user + system time (microseconds)
28 size virtual memory size (bytes)
29 rss resident set size (bytes)
30 fname file name
31 start start time (seconds since the epoch)
32 pctcpu percent cpu used since process started
33 state state of process
34 pctmem percent memory
35 cmndline full command line of process
36 exec absolute filename (including path) of executed command
37 ttydev path of process's tty
38 cwd current directory of process
39
README.darwin
1 SUPPORTED ATTRIBUTES
2======================================================
3pid process ID
4ppid parent process ID
5pgrp process group ID
6uid UID of process
7gid GID of process
8euid effective UID
9egid effective GID
10suid saved UID
11sgid saved GID
12priority priority of process
13size size of process in KB (data + stack)
14rss resident set size in KB
15flags process flags (see <sys/proc.h>)
16nice nice for cpu usage
17sess session pointer
18time total cpu time, microseconds
19stime system time, microseconds
20utime user time, microseconds
21start start time of process in seconds since epoch
22wchan address of current system call (though the docs make
23 it look like we can have a name if we hold our tongues
24 right)
25ttydev device name of tty, or empty if none
26ttynum device number of tty, or -1 if none
27pctcpu (decayed) %cpu for this process
28pctmem %memory for this process
29state state of process
30cmndline entire command line for the process
31fname command name
32
33Note that although time, stime, and utime are returned in microseconds,
34the actual resolution appears to be centiseconds.
35
36BUGS
37====
38The comments in the code for ps indicate that the cmndline and fname
39values are not to be relied on, since they are modifiable by the
40program itself once it begins execution.
41
42I'd like to provide the following attributes, I just can't figure out
43how:
44sid session id
45majflt major page faults
46minflt minor page faults
47
48The page fault information actually looks like it might be available,
49but it appears not to be. At any rate, the distributed ps doesn't
50provide it. The source for ps contains a bunch of conditionalizations
51on FIXME, which appears not to be defined. I have dropped them, but it
52appears that only if FIXME is defined do you get the page fault
53information, and even then not always.
54
55The sess is actually the address of a session structure. I'd love to
56extract the sid from this structure, but I segv when I try. I didn't
57try too hard, because the ps command also reports session pointer, not
58session ID.
59
60I'd like to provide the following attributes, but the Darwin ps
61documentation makes me believe they're not available:
62exec absolute filename (including path) of executed command
README.dec_osf
1Note: On Tru64, scripts have to run as root to get process table access.
2
3SUPPORTED ATTRIBUTES
4====================
5 uid UID of process
6 gid GID of process
7 euid EUID of process
8 egid EGID of process
9 suid SUID of process
10 sgid SGID of process
11 groups array of supplemental groups
12 pid process ID
13 ppid parent process ID
14 pgrp process group
15 sess session ID
16 priority priority of process
17 ttynum tty number of process
18 flags flags of process
19 time user + system time
20 size virtual memory size (bytes)
21 rss resident set size (bytes)
22 start start time (seconds since the epoch)
23 fname file name
24 pctcpu percent cpu used since process started
25 state state of process
26 cmndline full command line of process
27
28
29TODO
30====
31From the pstatus structure available from /proc we could get utime,
32stime, cutime and cstime.
33Where can we get the number of threads running within the process?
34
35BUGS
36====
37Time for the "time" field is in seconds; this is both
38inconsistent with the linux module (1/100 seconds) and really crude.
39
README.freebsd-kvm
1SUPPORTED ATTRIBUTES
2====================
3 pid process ID
4 ppid parent process ID
5 uid UID
6 euid effective UID
7 gid GID
8 groups array of group ids
9 pgrp process GID
10 sess process session ID
11 jid Jail ID
12
13 flags P_* flags
14 sflags PS_* flags
15 start start time
16 time running time (in seconds)
17 utime user time (in seconds)
18 stime system time (in seconds)
19 ctime running child time (in seconds)
20 cutime child user time (in seconds)
21 cstime child system time (in seconds)
22 pctcpu percent CPU usage
23 wchan current system call
24 state state of process
25
26 ttydev path of process's tty
27 ttynum tty number of process
28 fname command name
29 cmndline full command line of process
30 priority user priority of process
31 nice nice value of process
32 vmsize virtual size (bytes)
33 size alias for vmsize
34 rssize current resident set size in pages
35 rss current resident set size in bytes
36 tsize text size (pages) XXX
37 dsize data size (pages) XXX
38 ssize stack size (pages)
39
40 minflt minor page faults
41 cminflt child minor page faults
42 majflt major page faults
43 cmajflt child major page faults
44
45 numthr number of threads in total
46 onpro which cpu process in on (starting from 0), or undef
47
48
49COMMENT
50=======
51
52FreeBSD 5.X not mounting /proc by default. Procfs is vulnerable system and
53its use is not recommended in future. In addition, mapping processes space
54to /proc is not correct (at least, in 7 of 7 my freebsd servers with
55FreeBSD5 installed).
56
57So, I decided to write this code. This module works via the kvm system.
58
59Any comments please send to king2@kaluga.ru.
60
README.freebsd-procfs
1SUPPORTED ATTRIBUTES
2====================
3 uid UID of process
4 gid GID of process
5 euid effective UID of process
6 egid effective GID of process
7 pid process ID
8 ppid parent process ID
9 pgrp process group
10 sess session ID
11 priority priority of process
12 ttynum tty number of process
13 flags flags of process
14 utime user mode time
15 stime kernel mode time
16 time user + system time
17 wchan address of current system call
18 fname file name
19 start start time (seconds since the epoch)
20 state state of process
21 ttydev path of process's tty
22 cmndline full command line of process
23 priority priority of process
24
README.hpux
README.linux
1SUPPORTED ATTRIBUTES
2====================
3 uid UID of process
4 euid Effective UID of process
5 suid Saved UID of process
6 fuid File UID of process
7 gid GID of process
8 egid Effective GID of process
9 sgid Saved GID of process
10 fgid File GID of process
11 pid process ID
12 ppid parent process ID
13 pgrp process group
14 sess session ID
15 priority priority of process
16 ttynum tty number of process
17 flags flags of process
18 minflt minor page faults
19 cminflt child minor page faults
20 majflt major page faults
21 cmajflt child major page faults
22 utime user mode time (microseconds)
23 stime kernel mode time (microseconds)
24 cutime child utime (microseconds)
25 cstime child stime (microseconds)
26 time user + system time (microseconds)
27 ctime child user + system time (microseconds)
28 size virtual memory size (bytes)
29 rss resident set size (bytes)
30 wchan address of current system call
31 fname file name
32 start start time (seconds since the epoch)
33 pctcpu percent cpu used since process started
34 state state of process
35 pctmem percent memory
36 cmndline full command line of process
37 exec absolute filename (including path) of executed command
38 ttydev path of process's tty
39 cwd current directory of process
40
41NOTE
42====
43This now correctly gives you microseconds. Previously all times were actually
44in milliseconds even though this file said microseconds.
45 -Jason Smith
46
47BUGS
48====
49Though times are now converted to microseconds, they are limited to jiffie
50resolution. A jiffie is 100 Hertz on most platforms, 1024 Hertz on Alpha.
51 -Philip Gwyn
52
README.md
1# Proc::ProcessTable
2
3[![CircleCI](https://circleci.com/gh/jwbargsten/perl-proc-processtable/tree/master.svg?style=svg)](https://circleci.com/gh/jwbargsten/perl-proc-processtable/tree/master)
4
5Please use github or [rt.cpan.org](https://rt.cpan.org/Public/Dist/Display.html?Name=Proc-ProcessTable) to submit bugs and patches.
6
7## MAINTENANCE STATUS
8
9This module is maintained by Joachim Bargsten. I have nearly zero knowledge of
10the implementation within but wanted to rescue the distribution from
11abandonment and try to get critical bug fixes out. This will need to be
12a community effort.
13
14The source is in github -
15
16 https://github.com/jwbargsten/perl-proc-processtable
17
18Commit bits will be generously granted, send me your github id.
19
20## STATUS
21
22This is BETA software; it seems to work, but use at your own risk :)
23
24Currently works on darwin, nonstop-ux, Windows (both native MSWin32 and Cygwin), linux,
25solaris, aix, hpux, freebsd, irix, dec_osf, bsdi, netbsd, unixware 7.x,
26SunOS and openbsd. Please see the "README.osname" files for details on
27individual os implementations. Please see the file PORTING if you are
28interested in making it work on something else. Please see the file
29TODO for a list of issues that need to be addressed (and send me
30patches!).
31
32Please note that the Windows port is derived from Cygwin code and is therefore covered
33by the Cygwin license (http://cygwin.com/licensing.html).
34
35Multithread support is now available for Solaris; please see
36README.solaris for info. It may work under other OS's as well; please
37let me know if it does.
38
39Comments, bug reports, patches and especially ports are greatly
40appreciated. If you want to submit a patch, *please* use standard
41context-diff format; if you're submitting a port, a tarball of the new
42files is great.
43
44## DESCRIPTION
45
46This module is a first crack at providing a consistent interface to
47Unix (and maybe other multitasking OS's) process table information.
48The impetus for this came about with my frustration at having to parse
49the output of various systems' ps commands to check whether specific
50processes were running on different boxes at a larged mixed Unix site.
51The output format of ps was different on each OS, and sometimes
52changed with each new release of an OS. Also, running a ps subprocess
53from within a perl or shell script and parsing the output was not a
54very efficient or aesthetic way to do things.
55
56With this module, you can do things like this:
57
58 # kill memory pigs
59 use Proc::ProcessTable;
60
61 my $t = Proc::ProcessTable->new;
62 foreach my $p ( @{$t->table} ) {
63 if( $p->pctmem > 95 ){
64 $p->kill(9);
65 }
66 }
67
68There is another short example in the file "example.pl" in the
69distribution. For a more elaborate example (in German), see
70<http://www.linux-magazin.de/ausgabe.1999.02/Proc/proc.html>.
71<shameless plug> If you can't read German, try my other module,
72WWW::Babelfish!</shameless plug>
73
74There are also two contributed modules: a module called Proc::Killall
75contributed by Aaron Sherman to kill all processes whose command-lines
76match a given pattern, and a module called Proc::Killfam by Stephen
77Lidie to kill a list of processes and their children. These modules
78are installed along with Proc::ProcessTable. Pod documentation is
79included in both of them.
80
81
82## INSTALLATION
83
84This module needs the File::Find and Storable modules in order to
85work. File::Find is generally included with perl distributions;
86Storable is available from CPAN.
87
88After unpacking the tar file, do:
89
90 perl Makefile.PL
91 make
92 make test
93 make install
94
95There is embedded POD documentation in ProcessTable.pm and
96Process/Process.pm.
97
98## ACKNOWLEDGEMENTS
99
100Thanks to the many people who have sent in ports and patches. Without
101them this module would be impossible to support on so many platforms.
102Patches are noted in the Changes file.
103
104* David Paquet <David.Paquet@cnes.fr>: AIX port
105* Mike Romberg <romberg@fsl.noaa.gov>: HPUX port
106* Slaven Rezic <eserte@cs.tu-berlin.de>: FreeBSD port
107* W. Phillip Moore <wpm@ms.com>: IRIX port
108* Peter ? <hooft@natlab.research.philips.com>: IRIX version patch
109* Bernhard Schmalhofer <Bernhard.Schmalhofer@gmx.de>: dec_osf port
110* Sean Eskins <sean@gilasoft.com>: bsdi port
111* Peter Reich <pr@alles.prima.de>: netbsd port
112* Aaron Sherman <ajs@ajs.com>: Proc::Killall module
113* Steve Lidie <sol0@Lehigh.EDU>: Killfam.pm module
114* Martin Lucina <mato@catalyst.net.nz>: Unixware 7.x port
115* Shawn Clifford <shawn.a.clifford@lmco.com> SunOS port
116* J Robert Ray <jrray@jrray.org>:Windows (Cygwin) port.
117* Tom Wyant <twyant3@comcast.net>:Darwin port.
118* Mike Steinert <mike.steinert@motorola.com>: Nonstop-UX port.
119* <bsd@openbsd.rutgers.edu>: Openbsd port.
120
121Please note that Bernard Schmalhofer is no longer able to provide
122support for the dec_osf port.
123
124## COPYRIGHT
125
126Copyright (c) 1998-2008 Daniel J. Urist. All rights reserved.
127This package is free software; you can redistribute it and/or modify
128it under the same terms as Perl itself.
129
README.netbsd
1SUPPORTED ATTRIBUTES
2====================
3 uid UID of process
4 gid GID of process
5 euid effective UID of process
6 egid effective GID of process
7 pid process ID
8 ppid parent process ID
9 pgrp process group
10 sess session ID
11 priority priority of process
12 ttynum tty number of process
13 flags flags of process
14 utime user mode time
15 stime kernel mode time
16 time user + system time
17 wchan address of current system call
18 fname file name
19 start start time (seconds since the epoch)
20 state state of process
21 ttydev path of process's tty
22
23
README.openbsd
1 SUPPORTED ATTRIBUTES
2==================================
3uid UID of process
4gid GID of process
5euid effective UID of process
6egid effective GID of process
7pid process ID
8ppid parent process ID
9pgrp process group ID
10sess pointer to session
11time cpu time of process
12utime user time
13stime system time
14start time process started
15size virtual memory size (bytes)
16rss resident set size (bytes)
17fname command name
18state state of process
19ttydev path of process' tty
20ttynum tty number of process
21cmndline command line of process
22
23
README.solaris
1SUPPORTED ATTRIBUTES
2====================
3 uid UID of process
4 gid GID of process
5 euid effective UID of process
6 egid effective GID of process
7 pid process ID
8 ppid parent process ID
9 pgrp process group
10 sess session ID
11 priority priority of process
12 ttynum tty number of process
13 flags flags of process
14 time user + system time
15 ctime child user + system time
16 size virtual memory size (bytes)
17 rss resident set size (bytes)
18 wchan address of current system call
19 fname file name
20 start start time (seconds since the epoch)
21 pctcpu percent cpu used since process started
22 state state of process
23 pctmem percent memory
24 cmndline full command line of process
25 ttydev path of process's tty
26
27Thread
28======
29One can enable thread support by adding -DPROCESSTABLE_THREAD to the DEFINE line in Makefile.PL.
30Once this is done, one can invoke Proc::ProcessTable module from multiple threads within the
31same process.
32
33BUGS
34====
35There is an 80-character limit for the cmndline field; this is a
36limitation of the Solaris proc filesystem (at least up to Solaris
372.7). The only way to get at commandlines longer than that is to read
38/dev/kmem, which would be a major pain. Hopefully sun will fix this at
39some point in the future.
40
README.sunos
1 SUPPORTED ATTRIBUTES
2======================================================
3uid UID of process
4gid GID of process
5euid effective UID
6egid effective GID
7pid process ID
8ppid parent process ID
9pgrp process group ID
10priority priority of process
11flags process flags
12size size of process in KB (data + stack)
13rss resident set size in KB
14nice nice for cpu usage
15time cpu time of process
16fname command name
17cmndline entire command line for the process
18cpticks ticks of cpu time, for pctcpu
19pctcpu (decayed) %cpu for this process
20state state of process
21sess synonym for 'sid'
22sid session id
23ttynum tty number of process (-1 if no tty)
24
README.unixware
1SUPPORTED SYSTEMS
2=================
3Tested on UnixWare 7 and 7.1.
4
5SUPPORTED ATTRIBUTES
6====================
7 uid UID of process
8 gid GID of process
9 pid process ID
10 ppid parent process ID
11 pgrp process group
12 sess session ID
13 priority priority of process
14 ttynum tty number of process
15 flags flags of process
16 time user + system time
17 size virtual memory size (bytes)
18 rss resident set size (bytes)
19 wchan address of current system call
20 fname file name
21 start start time (seconds since the epoch)
22 state state of process
23 onpro number of processor
24 cmndline full command line of process
25
26
27TODO
28====
29From the cred structure available from /proc we could get euid, egid and
30others.
31
32BUGS
33====
34Times for the "time" field are in seconds; this is both
35inconsistent with the linux module (1/100 seconds) and really crude.
36