• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

contrib/H26-Sep-2021-438248

hints/H26-Sep-2021-16887

lib/Proc/H26-Sep-2021-662280

os/H26-Sep-2021-8,3735,758

t/H26-Sep-2021-357270

ChangesH A D26-Sep-202115.7 KiB370305

MANIFESTH A D26-Sep-20211.7 KiB101100

META.jsonH A D26-Sep-20211.2 KiB5554

META.ymlH A D26-Sep-2021717 2928

Makefile.PLH A D17-Aug-20211.9 KiB5850

ProcessTable.xsH A D12-Feb-201810.8 KiB424290

READMEH A D07-Feb-20194.7 KiB132105

README.MSWin32H A D07-Feb-2019265 1110

README.aixH A D21-Oct-20122.4 KiB9061

README.bsdiH A D21-Oct-2012641 2018

README.cygwinH A D26-Sep-20211.4 KiB3938

README.darwinH A D21-Oct-20122.5 KiB6256

README.dec_osfH A D21-Oct-20121.2 KiB3934

README.freebsd-kvmH A D12-Feb-20181.9 KiB6050

README.freebsd-procfsH A D24-Feb-2013782 2423

README.hpuxH A D21-Oct-2012454 6563

README.linuxH A D21-Oct-20121.8 KiB5249

README.mdH A D17-Aug-20214.9 KiB12996

README.netbsdH A D21-Oct-2012706 2321

README.openbsdH A D12-Feb-2018741 2321

README.solarisH A D21-Oct-20121.4 KiB4037

README.sunosH A D21-Oct-2012870 2423

README.unixwareH A D21-Oct-2012969 3631

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

1Supported fields:
2
3uid
4pid
5ppid
6dsize
7tsize
8ssize
9nice
10ttynum
11pgrp
12pri
13addr
14cpu
15utime
16stime
17start
18flag
19state
20wchan
21procnum
22cmd
23fname
24time
25cpticks
26cptickstotal
27fss
28pctcpu
29rssize
30suid
31ucomm
32shmsize
33mmsize
34usize
35iosize
36vtsize
37vdsize
38vssize
39vshmsize
40vmmsize
41vusize
42viosize
43minorfaults
44majorfaults
45nswap
46nsignals
47msgrcv
48msgsnd
49maxrss
50sid
51schedpolicy
52ticksleft
53rdir
54cdir
55text
56highestfd
57euid
58egid
59ioch
60usercycles
61systemcycles
62interruptcycles
63gid
64lwpid
65

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