+'\" t
+.\" (The preceding line is a note to broken versions of man to tell
.\" Man page for ps.
.\" Quick hack conversion by Albert Cahalan, 1998.
.\" Licensed under version 2 of the Gnu General Public License.
.\"
-.\" This man page is a horrid hack because *roff sucks.
-.\" The whole system is way obsolete. The internal header
-.\" stuff must die, and will when I figure out how to kill it.
-.\" I've already killed the wasteful left margin and screwy
-.\" old perfect justification. Gross! You'd think someone
-.\" invented this crap in 1973. Oh yeah, they did. Sorry.
+.TH PS 1 "July 28, 2004" "Linux" "Linux User's Manual"
+.SH NAME
+ps \- report a snapshot of the current processes.
.\"
-.TH PS 1 "July 5, 1998" "Linux" "Linux User's Manual"
-.SH \fRNAME\fR
-ps \- report process status
-.ad r
+.\" To render this page:
+.\" groff -t -b -man -X -P-resolution -P100 -Tps nicolas-ps.1 &
+.\" groff -t -b -man -X -TX100 nicolas-ps.1 &
+.\" tbl ps.1 | troff -Ww -man -z
+.\" groff -t -man -Tps ps.1 | ps2pdf - - > ps.pdf
+.\"
+.\" The '70s called. They want their perfect justification,
+.\" hyphenation, and double-spaced sentences back.
.na
-.ss 12 0
-.in 0
.nh
-.nf
-
-SYNOPSIS
-ps [options]
-
-
-DESCRIPTION
-ps gives a snapshot of the current processes. If you want
-a repetitive update of this status, use top. This man
-page documents the /proc-based version of ps, or tries to.
-
-
-COMMAND-LINE OPTIONS
-
-This version of ps accepts several kinds of options.
-
-Unix options may be grouped and must be preceeded by a dash.
-BSD options may be grouped and must not be used with a dash.
-Gnu long options are preceeded by two dashes.
-
-Options of different types may be freely mixed.
-
-Set the I_WANT_A_BROKEN_PS environment variable to force BSD syntax even
-when options are preceeded by a dash. The PS_PERSONALITY environment
-variable (described below) provides more detailed control of ps behavior.
-
-SIMPLE PROCESS SELECTION
--A select all processes
--N negate selection
--a select all with a tty except session leaders
--d select all, but omit session leaders
--e select all processes
-T select all processes on this terminal
-a select all processes on a terminal, including those of other users
-g really all, even group leaders (does nothing w/o SunOS settings)
-r restrict output to running processes
-x select processes without controlling ttys
---deselect negate selection
-
-PROCESS SELECTION BY LIST
--C select by command name
--G select by RGID (supports names)
--U select by RUID (supports names)
--g select by session leader OR by group name
--p select by PID
--s select processes belonging to the sessions given
--t select by tty
--u select by effective user ID (supports names)
-U select processes for specified users
-p select by process ID
-t select by tty
---Group select by real group name or ID
---User select by real user name or ID
---group select by effective group name or ID
---pid select by process ID
---ppid select by parent process ID
---sid select by session ID
---tty select by terminal
---user select by effective user name or ID
--123 implied --sid
-123 implied --pid
-
-OUTPUT FORMAT CONTROL
--O is preloaded "-o"
--F extra full format
--M add column for security data
--c different scheduler info for -l option
--f does full listing
--j jobs format
--l long format
--o user-defined format
--y do not show flags; show rss in place of addr
-O is preloaded "o" (overloaded)
-X old Linux i386 register format
-Z add column for security data
-j job control format
-l display long format
-o specify user-defined format
-s display signal format
-u display user-oriented format
-v display virtual memory format
---format user-defined format
---context display security context format (NSA SELinux, etc.)
-
-OUTPUT MODIFIERS
--H show process hierarchy (forest)
--n set namelist file
--w wide output
-C use raw CPU time for %CPU instead of decaying average
-N specify namelist file
-O sorting order (overloaded)
-S include some dead child process data (as a sum with the parent)
-c true command name
-e show environment after the command
-f ASCII-art process hierarchy (forest)
-h no header (or, one header per screen in the BSD personality)
-n numeric output for WCHAN and USER
-w wide output
---cols set screen width
---columns set screen width
---cumulative include some dead child process data (as a sum with the parent)
---forest ASCII art process tree
---headers repeat header lines, one per page of output
---no-headers print no header line at all
---lines set screen height
---rows set screen height
---sort specify sorting order
---width set screen width
-
-THREAD DISPLAY
--L show threads, possibly with LWP and NLWP columns
--T show threads, possibly with SPID column
--m show threads after processes
-H show threads as if they were processes
-m show threads after processes
-
-INFORMATION
--V print version
-L list all format specifiers
-V show version info
---help print help message
---info print debugging info
---version print version
-
-OBSOLETE
-A increases the argument space (DecUnix)
-M use alternate core (try -n or N instead)
-W get swap info from ... not /dev/drum (try -n or N instead)
-k use /vmcore as c-dumpfile (try -n or N instead)
-
-
-
-NOTES
-
-User-defined format options ("o", "-o", "O", and "-O") offer
-a way to specify individual output columns. Headers may be
-renamed ("ps -o pid,ruser=RealUser -o comm=Command") as desired.
-If all column headers are empty ("ps -o pid= -o comm=") then the
+.if n .ss 12 0
+.\"
+.\" See /usr/share/groff/current/tmac/an-old.tmac for what these do.
+.\" Setting them to zero provides extra space, but only do that for
+.\" plain text output. PostScript and such will remain indented.
+.if n .nr IN 0n
+.if n .nr an-prevailing-indent 0n
+.\"
+.\"
+.\" ColSize is used for the format spec table.
+.\" It's the left margin, minus the right, minus
+.\" the space needed for the 1st two columns.
+.\" Making it messy: inches, ens, points, scaled points...
+.\"
+.nr ColSize ((\n(.lu-\n(.iu/\n(.Hu-20u)n)
+.\"
+.\" This is for command options
+.nr OptSize (16u)
+.\"
+.\" l=\n(.l
+.\" i=\n(.i
+.\" o=\n(.o
+.\" H=\n(.H
+.\" s=\n(.s
+.\" ColSize=\n[ColSize]
+.\"
+.\" Macro for easy option formatting: .opt \-x
+.de opt
+. TP \\n[OptSize]
+. BI \\$*
+..
+.\"
+.SH SYNOPSIS
+\fBps\fR [\fIoptions\fR]
+.PP
+.PP
+.SH DESCRIPTION
+.B ps
+displays information about a selection of the active processes.
+If you want a repetitive update of the selection and the
+displayed information, use\ \fItop\fR(1) instead.
+.P
+By default, \fBps\fR selects all processes with the same effective user
+ID (EUID) as the curent user and associated with the same terminal as the
+invoker. It displays the process ID (PID), the terminal (tty) associated
+with the process (TTY), the cumulated CPU time in [dd\-]hh:mm:ss format
+(TIME), and the executable name (CMD). The use of BSD\-style options
+will add process state (STAT) to the default display. The use of BSD\-style
+options will also change the process selection to include processes
+on other terminals (TTYs) that are owned by you; alternately, this may
+be described as setting the selection to be the set of all processes
+filtered to exclude processes owned by other users or not on a terminal.
+Output is unsorted by default.
+.P
+Except as described below, process selection options are additive.
+The default selection is discarded, and then the selected processes
+are added to the set of processes to be displayed.
+A\ process will thus be shown if it meets any of the selection
+criteria.
+.PP
+.PP
+.SH "COMMAND\-LINE OPTIONS"
+This version of \fBps\fR accepts several kinds of options:
+.PD 0
+.IP 1 4
+UNIX options, which may be grouped and must be preceeded by a dash.
+.IP 2 4
+BSD options, which may be grouped and must not be used with a dash.
+.IP 3 4
+GNU long options, which are preceeded by two dashes.
+.PD
+.PP
+Options of different types may be freely mixed, but conflicts can appear.
+There are some synonomous options, which are functionally identical, due
+to the many standards and \fBps\fR implementations that this \fBps\fR is
+compatible with.
+.P
+Note that "\fBps\ \-aux\fR" is distinct from "\fBps\ aux\fR".
+The POSIX and UNIX standards require that "\fBps\ \-aux\fR" print all
+processes owned by a user named "x", as well as printing all processes
+that would be selected by the \fB\-a\fR option. If the user named "x" does
+not exist, this \fBps\fR may interpret the command as "\fBps\ aux\fR"
+instead and print a warning. This behavior is intended to aid in
+transitioning old scripts and habits. It is fragile, subject to change,
+and thus should not be relied upon.
+.PP
+.\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.SH "EXAMPLES"
+.TP 3
+To see every process on the system using standard syntax:
+.B ps\ \-e
+.br
+.B ps\ \-ef
+.br
+.B ps\ \-eF
+.br
+.B ps\ \-ely
+.TP
+To see every process on the system using BSD syntax:
+.B ps\ ax
+.br
+.B ps\ axu
+.TP
+To print a process tree:
+.B ps\ -ejH
+.br
+.B ps\ axjf
+.TP
+To get info about threads:
+.B ps\ -eLf
+.br
+.B ps\ axms
+.TP
+To get security info:
+.B ps\ -eo euser,ruser,suser,fuser,f,comm,label
+.br
+.B ps\ axZ
+.br
+.B ps\ -eM
+.TP
+To see every process except those running as root (real\ &\ effective\ ID)
+.B ps\ \-U\ root\ \-u\ root\ \-N
+.TP
+To see every process with a user\-defined format:
+.B ps\ \-eo\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
+.br
+.B ps\ axo\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
+.br
+.B ps\ \-eopid,tt,user,fname,tmout,f,wchan
+.TP
+Odd display with AIX field descriptors:
+.B ps\ \-o\ "%u\ :\ %U\ :\ %p\ :\ %a"
+.TP
+Print only the process IDs of syslogd:
+.B ps\ \-C\ syslogd\ \-o\ pid=
+.TP
+Print only the name of PID 42:
+.B ps\ \-p\ 42\ \-o\ comm=
+.PP
+.PP
+.\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.SH "SIMPLE PROCESS SELECTION"
+.TP \n[OptSize]
+.B \-A
+Select all processes. Identical to \fB\-e\fR.
+
+.TP
+.B \-N
+Select all processes except those that fulfill the specified conditions.
+
+.opt T
+Select all processes associated with this terminal. Identical to the
+\fBt\fR option without any argument.
+
+.TP
+.B \-a
+Select all processes except session leaders (see \fIgetsid\fR(2)) and
+processes not associated with a terminal.
+
+.TP
+.B a
+Lift the BSD\-style "only yourself" restriction, which is imposed upon
+the set of all processes when some BSD\-style (without\ "\-") options
+are used or when the \fBps\fR personality setting is BSD\-like.
+The set of processes selected in this manner is
+in addition to the set of processes selected by other means.
+An alternate description is that this option causes \fBps\fR to
+list all processes with a terminal (tty), or to list all processes
+when used together with the \fBx\fR option.
+
+.TP
+.B \-d
+Select all processes except session leaders.
+
+.TP
+.B \-e
+Select all processes. Identical to \fB\-A\fR.
+
+.\" Current "g" behavior: add in the session leaders, which would
+.\" be excluded in the sunos4 personality. Supposed "g" behavior:
+.\" add in the group leaders -- at least according to the SunOS 4
+.\" man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+.\" though, so maybe the code is correct.
+.TP
+.B g
+Really all, even session leaders. This flag is obsolete and may be
+discontinued in a future release. It is normally implied by the \fBa\fR flag,
+and is only useful when operating in the sunos4 personality.
+
+.TP
+.B r
+Restrict the selection to only running processes.
+
+.TP
+.B x
+Lift the BSD\-style "must have a tty" restriction, which is imposed upon
+the set of all processes when
+some BSD\-style options are used or when the \fBps\fR personality
+setting is BSD\-like. The set of processes selected in this manner is
+in addition to the set of processes selected by other means.
+An alternate description is that this option causes \fBps\fR to
+list all processes owned by you (same EUID as \fBps\fR),
+or to list all processes when used together with the \fBa\fR option.
+
+.TP
+.B \-\-deselect
+Select all processes except those that fulfill the specified conditions.
+
+.\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.PD
+.PP
+.SH "PROCESS SELECTION BY LIST"
+These options accept a single argument in the form of a blank\-separated
+or comma\-separated list. They can be used multiple times.
+For\ example:\ \fBps\ \-p\ "1\ 2"\ \-p\ 3,4\fR
+.P
+.TP \n[OptSize]
+.BI \-C \ cmdlist
+Select by command name.
+.br
+This selects the processes whose executable name is given in
+\fIcmdlist\fR.
+
+.TP
+.BI \-G \ grplist
+Select by real group ID (RGID) or name.
+.br
+This selects the processes whose real group name or ID is in the
+\fIgrplist\fR list. The real group ID identifies the group of the user
+who created the process, see \fIgetgid\fR(2).
+
+.TP
+.BI U \ userlist
+Select by effective user ID (EUID) or name.
+.br
+This selects the processes whose effective user name
+or ID is in \fIuserlist\fR.
+The effective user\ ID describes the user whose file
+access permissions are used by the process
+(see\ \fIgeteuid\fR(2)).
+Identical to \fB\-u\fR and\ \fB\-\-user\fR.
+
+.TP
+.BI \-U \ userlist
+select by real user ID (RUID) or name.
+.br
+It selects the processes whose real user name or ID is in the
+\fIuserlist\fR list.
+The real user ID identifies the user who created the process,
+see\ \fIgetuid\fR(2).
+
+.TP
+.BI \-g \ grplist
+Select by session OR by effective group name.
+.br
+Selection by session is specified by many standards,
+but selection by effective group is the logical behavior that
+several other operating systems use.
+This \fBps\fR will select by session when the list
+is completely numeric (as\ sessions\ are).
+Group ID numbers will work only when some group names are also specified.
+See the \fB\-s\fR and \fB\-\-group\fR options.
+
+.TP
+.BI p \ pidlist
+Select by process ID. Identical to \fB\-p\fR and\ \fB\-\-pid\fR.
+
+.TP
+.BI \-p \ pidlist
+Select by PID.
+.br
+This selects the processes whose process ID numbers appear in
+\fIpidlist\fR. Identical to \fBp\fR and\ \fB\-\-pid\fR.
+
+.TP
+.BI \-s \ sesslist
+Select by session ID.
+.br
+This selects the processes
+with a session ID specified in\ \fIsesslist\fR.
+
+.TP
+.BI t \ ttylist
+Select by tty. Nearly identical to \fB\-t\fR and \fB\-\-tty\fR,
+but can also be used with an empty \fIttylist\fR to indicate
+the terminal associated with \fBps\fR.
+Using the \fBT\fR option is considered cleaner than using \fBT\fR with
+an\ empty\ \fIttylist\fR.
+
+.TP
+.BI \-t \ ttylist
+Select by tty.
+.br
+This selects the processes associated with the terminals
+given in \fIttylist\fR.
+Terminals (ttys, or screens for text output) can be specified in several
+forms: /dev/ttyS1, ttyS1, S1.
+A\ plain "\-" may be used to select processes not attached to any terminal.
+
+.TP
+.BI \-u \ userlist
+Select by effective user ID (EUID) or name.
+.br
+This selects the processes whose effective user name or ID is in
+\fIuserlist\fR. The effective user ID describes the user whose file
+access permissions are used by the process (see\ \fIgeteuid\fR(2)).
+Identical to \fBU\fR and \fB\-\-user\fR.
+
+.TP
+.BI \-\-Group \ grplist
+Select by real group ID (RGID) or name. Identical to \fB\-G\fR.
+
+.TP
+.BI \-\-User \ userlist
+Select by real user ID (RUID) or name. Identical to \fB\-U\fR.
+
+.TP
+.BI \-\-group \ grplist
+Select by effective group ID (EGID) or name.
+.br
+This selects the processes whose effective group name or ID is in
+\fIgrouplist\fR. The effective group ID describes the group whose file
+access permissions are used by the process (see\ \fIgeteuid\fR(2)).
+The \fB\-g\fR option is often an alternative to\ \fB\-\-group\fR.
+
+.TP
+.BI \-\-pid \ pidlist
+Select by process\ ID. Identical to \fB\-p\fR\ and\ \fBp\fR.
+
+.TP
+.BI \-\-ppid \ pidlist
+Select by parent process\ ID.
+This selects the processes
+with a parent\ process\ ID in \fRpidlist\fR.
+That\ is, it selects processes that are children
+of those listed in \fRpidlist\fR.
+
+.TP
+.BI \-\-sid \ sesslist
+Select by session\ ID. Identical to\ \fB\-s\fR.
+
+.TP
+.BI \-\-tty \ ttylist
+Select by terminal. Identical to \fB\-t\fR and\ \fBt\fR.
+
+.TP
+.BI \-\-user \ userlist
+Select by effective user ID (EUID) or name.
+Identical to \fB\-u\fR and\ \fBU\fR.
+
+.TP
+\fB\-\fI123\fR
+Identical to \fB\-\-sid\ \fI123\fR.
+
+.TP
+.B \fI123\fR
+Identical to \fB\-\-pid\ \fI123\fR.
+
+.\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.PD
+.PP
+.SH "OUTPUT FORMAT CONTROL"
+These options are used to choose the information displayed by \fBps\fR.
+The output may differ by personality.
+.PP
+
+.TP \n[OptSize]
+.B \-F
+extra full format. See the \fB\-f\fR option, which \fB\-F\fR implies.
+
+.TP
+.BI \-O \ format
+is like \fB\-o\fR, but preloaded with some default columns.
+Identical to \fB\-o\ pid,\fIformat\fB,state,tname,time,command\fR
+or \fB\-o\ pid,\fIformat\fB,tname,time,cmd\fR, see\ \fB\-o\fR\ below.
+
+.TP
+.BI O \ format
+is preloaded \fBo\fR (overloaded).
+.br
+The BSD \fBO\fR option can act like \fB\-O\fR (user\-defined output
+format with some common fields predefined) or can be used to specify
+sort order. Heuristics are used to determine the behavior of this
+option. To ensure that the desired behavior is obtained (sorting or
+formatting), specify the option in some other way
+(e.g. with \fB\-O\fR or \fB\-\-sort\fR).
+When used as a formatting option, it is identical to \fB\-O\fR, with the
+BSD\ personality.
+
+.TP
+.B \-M
+Add a column of security data. (for\ SE\ Linux)
+
+.TP
+.B X
+Register format.
+
+.TP
+.B Z
+Add a column of security data. (for\ SE\ Linux)
+
+.TP
+.B \-c
+Show different scheduler information for the \fB\-l\fR option.
+
+.TP
+.B \-f
+does full\-format listing. This option can be combined with many
+other UNIX\-style options to add additional columns. It also causes
+the command arguments to be printed. When used with \fB\-L\fR, the
+NLWP (number of threads) and LWP (thread ID) columns will be added.
+
+.TP
+.B j
+BSD job control format.
+
+.TP
+.B \-j
+jobs format
+
+.TP
+.B l
+display BSD long format.
+
+.TP
+.B \-l
+long format. The \fB\-y\fR option is often useful with this.
+
+.TP
+.BI o \ format
+specify user\-defined format. Identical to \fB\-o\fR and
+\fB\-\-format\fR.
+
+.TP
+.BI \-o \ format
+user\-defined format.
+.br
+\fIformat\fR is a single argument in the form of a
+blank\-separated or comma\-separated list, which offers
+a way to specify individual output columns.
+The recognized keywords are described in the \fBSTANDARD FORMAT
+SPECIFIERS\fR section below.
+Headers may be
+renamed (\fBps\ \-o\ pid,ruser=RealUser\ \-o\ comm=Command\fR) as desired.
+If all column headers are empty (\fBps\ \-o\ pid=\ \-o\ comm=\fR) then the
header line will not be output. Column width will increase as
needed for wide headers; this may be used to widen up columns
-such as WCHAN ("ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm").
-Explicit width control ("ps opid,wchan:42,cmd") is offered too.
-The behavior of "ps -o pid=X,comm=Y" varies with personality;
+such as WCHAN (\fBps\ \-o\ pid,wchan=WIDE\-WCHAN\-COLUMN\ \-o\ comm\fR).
+Explicit width control (\fBps\ opid,wchan:42,cmd\fR) is offered too.
+The behavior of \fBps\ \-o\ pid=X,comm=Y\fR varies with personality;
output may be one column named "X,comm=Y" or two columns
-named "X" and "Y". Use multiple -o options when in doubt.
-Use the $PS_FORMAT environment variable to specify a default
+named "X" and "Y". Use multiple \fB\-o\fR options when in doubt.
+Use the \fBPS_FORMAT\fR environment variable to specify a default
as desired; DefSysV and DefBSD are macros that may be used to
choose the default UNIX or BSD columns.
-The following user-defined format specifiers may contain
-spaces: comm, args, cmd, comm, command, fname, ucmd, ucomm,
-lstart, bsdstart, start
-
-The "-g" option can select by session leader OR by group name.
-Selection by session leader is specified by many standards,
-but selection by group is the logical behavior that several other
-operating systems use. This ps will select by session leader when
-the list is completely numeric (as sessions are). Group ID numbers
-will work only when some group names are also specified.
-
-The "m" option should not be used. Use "-m" or "-o" with a list.
-("m" displays memory info, shows threads, or sorts by memory use)
-
-The "h" option is problematic. Standard BSD ps uses the option to
-print a header on each page of output, but older Linux ps uses the option
-to totally disable the header. This version of ps follows the Linux
-usage of not printing the header unless the BSD personality has been
-selected, in which case it prints a header on each page of output.
-Regardless of the current personality, you can use the long options
---headers and --no-headers to enable printing headers each page and
+.TP
+.B s
+display signal format
+
+.TP
+.B u
+display user\-oriented format
+
+.TP
+.B v
+display virtual memory format
+
+.TP
+.B \-y
+Do not show flags; show rss in place of addr.
+This option can only be used with \fB\-l\fR.
+
+.TP
+.BI \-\-format \ format
+user\-defined format. Identical to \fB\-o\fR and \fBo\fR.
+
+.TP
+.B \-\-context
+Display security context format. (for\ SE\ Linux)
+
+.\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.PD
+.PP
+.SH "OUTPUT MODIFIERS"
+
+.\" .TP
+.\" .B C
+.\" use raw CPU time for %CPU instead of decaying average
+
+.TP \n[OptSize]
+.B \-H
+show process hierarchy (forest)
+
+.TP
+.BI N \ namelist
+Specify namelist file. Identical to \fB\-n\fR, see \fB\-n\fR above.
+
+.TP
+.BI O \ order
+Sorting order. (overloaded)
+.br
+The BSD \fBO\fR option can act like \fB\-O\fR (user\-defined output
+format with some common fields predefined) or can be used to specify
+sort order. Heuristics are used to determine the behavior of this
+option. To ensure that the desired behavior is obtained (sorting or
+formatting), specify the option in some other way (e.g. with \fB\-O\fR
+or \fB\-\-sort\fR).
+
+For sorting, obsolete BSD \fBO\fR option syntax is
+\fBO\fR[\fB+\fR|\fB\-\fR]\fIk1\fR[,[\fB+\fR|\fB\-\fR]\fIk2\fR[,...]].
+It orders the processes listing according to the multilevel sort specified by
+the sequence of one\-letter short keys \fIk1\fR, \fIk2\fR, ... described
+in the \fBOBSOLETE SORT KEYS\fR section below.
+The\ "+" is currently optional,
+merely re\-iterating the default direction on a key,
+but may help to distinguish an \fBO\fR sort from an \fBO\fR format.
+The\ "\-" reverses direction only on the key it precedes.
+
+.TP
+.B S
+Sum up some information, such as CPU usage, from dead child processes
+into their parent. This is useful for examining a system where a
+parent process repeatedly forks off short\-lived children to do work.
+
+.TP
+.B c
+Show the true command name. This is derived from the name of the
+executable file, rather than from the argv value which could be
+modified by a user. Command arguments are not shown.
+
+.TP
+.B e
+Show the environment after the command.
+
+.TP
+.B f
+ASCII\-art process hierarchy (forest)
+
+.TP
+.B h
+No header. (or, one header per screen in the BSD personality)
+.br
+The \fBh\fR option is problematic. Standard BSD \fBps\fR uses
+this option to print a header on each page of output, but older
+Linux \fBps\fR uses this option to totally disable the header.
+This version of \fBps\fR follows the Linux usage of not printing
+the header unless the BSD personality has been selected, in which
+case it prints a header on each page of output. Regardless of the
+current personality, you can use the long options \fB\-\-headers\fR
+and \fB\-\-no\-headers\fR to enable printing headers each page or
disable headers entirely, respectively.
-Terminals (ttys, or screens for text output) can be specified in several
-forms: /dev/ttyS1, ttyS1, S1. Obsolete "ps t" (your own terminal) and
-"ps t?" (processes without a terminal) syntax is supported, but modern
-options ("T", "-t" with list, "x", "t" with list) should be used instead.
-
-The BSD "O" option can act like "-O" (user-defined output format with
-some common fields predefined) or can be used to specify sort order.
-Heuristics are used to determine the behavior of this option. To ensure
-that the desired behavior is obtained, specify the other option (sorting
-or formatting) in some other way.
-
-For sorting, obsolete BSD "O" option syntax is O[+|-]k1[,[+|-]k2[,...]]
-Order the process listing according to the multilevel sort specified by
-the sequence of short keys from SORT KEYS, k1, k2, ... The `+' is quite
-optional, merely re-iterating the default direction on a key. `-' reverses
-direction only on the key it precedes. The O option must be the last option
-in a single command argument, but specifications in successive arguments are
-catenated.
-
-Gnu sorting syntax is --sortX[+|-]key[,[+|-]key[,...]]
-Choose a multi-letter key from the SORT KEYS section. X may be any
-convenient separator character. To be GNU-ish use `='. The `+' is really
-optional since default direction is increasing numerical or lexicographic
-order. For example, ps jax --sort=uid,-ppid,+pid
-
-This ps works by reading the virtual files in /proc. This ps does not
-need to be suid kmem or have any privileges to run. Do not give this ps
-any special permissions.
-
-This ps needs access to a namelist file for proper WCHAN display.
-The namelist file must match the current Linux kernel exactly for
-correct output.
-
-To produce the WCHAN field, ps needs to read the System.map file created
-when the kernel is compiled. The search path is:
-
-$PS_SYSTEM_MAP
-/boot/System.map-`uname -r`
-/boot/System.map
-/lib/modules/`uname -r`/System.map
-/usr/src/linux/System.map
-
-The member used_math of task_struct is not shown, since crt0.s checks
-to see if math is present. This causes the math flag to be set for all
-processes, and so it is worthless. (Somebody fix libc or the kernel please)
+.TP
+.BI k \ spec
+specify sorting order. Sorting syntax is
+[\fB+\fR|\fB\-\fR]\fIkey\fR[,[\fB+\fR|\fB\-\fR]\fIkey\fR[,...]]
+Choose a multi\-letter key from the \fBSTANDARD FORMAT SPECIFIERS\fR section.
+The\ "+" is optional since default direction is increasing numerical or
+lexicographic order. Identical to \fB\-\-sort\fR. Examples:
+.br
+\fBps\ jaxkuid,\-ppid,+pid\fR
+.br
+\fBps\ axk\ comm\ o\ comm,args\fR
+.br
+\fBps\ kstart_time\ \-ef\fR
+
+.TP
+.BI \-n \ namelist
+set namelist file. Identical to \fBN\fR.
+.br
+The namelist file is needed for a proper WCHAN display, and must match
+the current Linux kernel exactly for correct output.
+Without this option, the default search path for the namelist is:
+
+ $PS_SYSMAP
+.br
+ $PS_SYSTEM_MAP
+.br
+ /proc/*/wchan
+.br
+ /boot/System.map\-\`uname\ \-r\`
+.br
+ /boot/System.map
+.br
+ /lib/modules/\`uname\ \-r\`/System.map
+.br
+ /usr/src/linux/System.map
+.br
+ /System.map
+
+.TP
+.B n
+Numeric output for WCHAN and USER. (including all types of UID and GID)
+
+.TP
+.B \-w
+Wide output. Use this option twice for unlimited width.
+
+.TP
+.B w
+Wide output. Use this option twice for unlimited width.
+
+.TP
+.BI \-\-cols \ n
+set screen width
+
+.TP
+.BI \-\-columns \ n
+set screen width
+
+.TP
+.B \-\-cumulative
+include some dead child process data (as a sum with the parent)
+
+.TP
+.B \-\-forest
+ASCII art process tree
+
+.TP
+.B \-\-headers
+repeat header lines, one per page of output
+
+.TP
+.B \-\-no\-headers
+print no header line at all
+
+.TP
+.BI \-\-lines \ n
+set screen height
+
+.TP
+.BI \-\-rows \ n
+set screen height
+
+.TP
+.BI \-\-sort \ spec
+specify sorting order. Sorting syntax is
+[\fB+\fR|\fB\-\fR]\fIkey\fR[,[\fB+\fR|\fB\-\fR]\fIkey\fR[,...]]
+Choose a multi\-letter key from the \fBSTANDARD FORMAT SPECIFIERS\fR section.
+The\ "+" is optional since default direction is increasing numerical or
+lexicographic order. Identical to\ \fBk\fR.
+For example: \fBps\ jax\ \-\-sort=uid,\-ppid,+pid\fR
+
+.TP
+.BI \-\-width \ n
+set screen width
+
+.\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.PD
+.PP
+.SH "THREAD DISPLAY"
+.PD 0
+
+.TP \n[OptSize]
+.B H
+Show threads as if they were processes
+
+.TP
+.B \-L
+Show threads, possibly with LWP and NLWP columns
+
+.TP
+.B \-T
+Show threads, possibly with SPID column
+
+.TP
+.B m
+Show threads after processes
+
+.TP
+.B \-m
+Show threads after processes
+
+.\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.PD
+.PP
+.SH "OTHER INFORMATION"
+.PD 0
+
+.TP \n[OptSize]
+.B L
+List all format specifiers.
+
+.TP
+.B \-V
+Print the procps version.
+
+.TP
+.B V
+Print the procps version.
+
+.TP
+.B \-\-help
+Print a help message.
+
+.TP
+.B \-\-info
+Print debugging info.
+
+.TP
+.B \-\-version
+Print the procps version.
+
+.\" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+.PD
+.PP
+.SH NOTES
+This \fBps\fR works by reading the virtual files in\ /proc.
+This \fBps\fR does not need to be setuid kmem or have any privileges to run.
+Do not give this \fBps\fR any special permissions.
+
+This \fBps\fR needs access to namelist data for proper WCHAN display.
+For kernels prior to 2.6, the System.map file must be installed.
+
+CPU usage is currently expressed as the percentage of time spent
+running during the entire lifetime of a process.
+This is not ideal, and\ it does not conform to the
+standards that \fBps\fR otherwise conforms\ to.
+CPU\ usage is unlikely to add up to exactly\ 100%.
Programs swapped out to disk will be shown without command line arguments,
-and unless the c option is given, in brackets.
+and unless the \fBc\fR option is given,
+in\ brackets.
-%CPU shows the cputime/realtime percentage. It will not add up to 100%
-unless you are lucky. It is time used divided by the time the process has
-been running.
+The SIZE and RSS fields don't count some parts of a process including the
+page tables, kernel stack, struct thread_info, and struct task_struct.
+This is usually at least 20\ KiB of memory that is always resident.
+SIZE is the virtual size of the process (code+data+stack).
-The SIZE and RSS fields don't count the page tables and the task_struct of a
-proc; this is at least 12k of memory that is always resident. SIZE is the
-virtual size of the proc (code+data+stack).
-
-Processes marked <defunct> are dead processes (so-called "zombies") that
+Processes marked <defunct> are dead processes (so\-called\ "zombies") that
remain because their parent has not destroyed them properly. These processes
-will be destroyed by init(8) if the parent process exits.
-
-
-PROCESS FLAGS
-
-FORKNOEXEC 1 forked but didn't exec
-SUPERPRIV 4 used super-user privileges
-
-
-PROCESS STATE CODES
-
-D uninterruptible sleep (usually IO)
-R runnable (on run queue)
-S sleeping
-T traced or stopped
-W paging (2.4 kernels and older only)
-X dead
-Z a defunct ("zombie") process
-
-For BSD formats and when the "stat" keyword is used, additional
+will be destroyed by \fIinit\fR(8) if the parent process exits.
+
+
+.SH "PROCESS FLAGS"
+The sum of these values is displayed in the "F" column,
+which is provided by the \fBflags\fR output specifier.
+.PD 0
+.TP 5
+1
+forked but didn't exec
+.TP
+4
+used super\-user privileges
+.PD
+.PP
+.SH "PROCESS STATE CODES"
+Here are the different values that the \fBs\fR, \fBstat\fR and
+\fBstate\fR output specifiers (header\ "STAT"\ or\ "S") will display to
+describe the state of a process.
+.PD 0
+.TP 5
+D
+Uninterruptible sleep (usually\ IO)
+.TP
+R
+Running or runnable (on\ run\ queue)
+.TP
+S
+Interruptible sleep (waiting for an event to complete)
+.TP
+T
+Stopped, either by a job control signal or because it is being traced.
+.TP
+W
+paging (not valid since the 2.6.xx kernel)
+.TP
+X
+dead (should never be seen)
+.TP
+Z
+Defunct ("zombie") process, terminated but not reaped by its parent.
+.PD
+.PP
+For BSD formats and when the \fBstat\fR keyword is used, additional
characters may be displayed:
-
-< high-priority task
-N low-priority task
-L has pages locked into memory (for real-time and custom IO)
-s is a session leader
-+ is in the foreground process group
-
-SORT KEYS
-
-Note that the values used in sorting are the internal values ps uses and not
-the `cooked' values used in some of the output format fields. Pipe ps
-output into the sort(1) command if you want to sort the cooked values.
-
-KEY LONG DESCRIPTION
-c cmd simple name of executable
-C cmdline full command line
-f flags flags as in long format F field
-g pgrp process group ID
-G tpgid controlling tty process group ID
-j cutime cumulative user time
-J cstime cumulative system time
-k utime user time
-K stime system time
-m min_flt number of minor page faults
-M maj_flt number of major page faults
-n cmin_flt cumulative minor page faults
-N cmaj_flt cumulative major page faults
-o session session ID
-p pid process ID
-P ppid parent process ID
-r rss resident set size
-R resident resident pages
-s size memory size in kilobytes
-S share amount of shared pages
-t tty the minor device number of tty
-T start_time time process was started
-U uid user ID number
-u user user name
-v vsize total VM size in kB
-y priority kernel scheduling priority
-
-
-AIX FORMAT DESCRIPTORS
-
-This ps supports AIX format descriptors, which work somewhat like the
-formatting codes of printf(1) and printf(3). For example, the normal
-default output can be produced with this: ps -eo "%p %y %x %c"
-
-CODE NORMAL HEADER
-%C pcpu %CPU
-%G group GROUP
-%P ppid PPID
-%U user USER
-%a args COMMAND
-%c comm COMMAND
-%g rgroup RGROUP
-%n nice NI
-%p pid PID
-%r pgid PGID
-%t etime ELAPSED
-%u ruser RUSER
-%x time TIME
-%y tty TTY
-%z vsz VSZ
-
-
-STANDARD FORMAT SPECIFIERS
-
-These may be used to control both output format and sorting.
-For example: ps -eo pid,user,args --sort user
-
-CODE HEADER
-%cpu %CPU
-%mem %MEM
-alarm ALARM
-args COMMAND
-blocked BLOCKED
-bsdstart START
-bsdtime TIME
-c C
-caught CAUGHT
-cmd CMD
-comm COMMAND
-command COMMAND
-context CONTEXT
-cputime TIME
-drs DRS
-dsiz DSIZ
-egid EGID
-egroup EGROUP
-eip EIP
-esp ESP
-etime ELAPSED
-euid EUID
-euser EUSER
-f F
-fgid FGID
-fgroup FGROUP
-flag F
-flags F
-fname COMMAND
-fsgid FSGID
-fsgroup FSGROUP
-fsuid FSUID
-fsuser FSUSER
-fuid FUID
-fuser FUSER
-gid GID
-group GROUP
-ignored IGNORED
-intpri PRI
-lim LIM
-longtname TTY
-lstart STARTED
-m_drs DRS
-m_trs TRS
-maj_flt MAJFL
-majflt MAJFLT
-min_flt MINFL
-minflt MINFLT
-ni NI
-nice NI
-nwchan WCHAN
-opri PRI
-pagein PAGEIN
-pcpu %CPU
-pending PENDING
-pgid PGID
-pgrp PGRP
-pid PID
-pmem %MEM
-ppid PPID
-pri PRI
-priority PRI
-rgid RGID
-rgroup RGROUP
-rss RSS
-rssize RSS
-rsz RSZ
-ruid RUID
-ruser RUSER
-s S
-sess SESS
-session SESS
-sgi_p P
-sgi_rss RSS
-sgid SGID
-sgroup SGROUP
-sid SID
-sig PENDING
-sig_block BLOCKED
-sig_catch CATCHED
-sig_ignore IGNORED
-sig_pend SIGNAL
-sigcatch CAUGHT
-sigignore IGNORED
-sigmask BLOCKED
-stackp STACKP
-start STARTED
-start_stack STACKP
-start_time START
-stat STAT
-state S
-stime STIME
-suid SUID
-suser SUSER
-svgid SVGID
-svgroup SVGROUP
-svuid SVUID
-svuser SVUSER
-sz SZ
-time TIME
-timeout TMOUT
-tmout TMOUT
-tname TTY
-tpgid TPGID
-trs TRS
-trss TRSS
-tsiz TSIZ
-tt TT
-tty TT
-tty4 TTY
-tty8 TTY
-ucmd CMD
-ucomm COMMAND
-uid UID
-uid_hack UID
-uname USER
-user USER
-vsize VSZ
-vsz VSZ
-wchan WCHAN
-
-
-
-
-ENVIRONMENT VARIABLES
-The following environment variables could affect ps:
- COLUMNS Override default display width.
- LINES Override default display height.
- PS_PERSONALITY Set to one of posix,old,linux,bsd,sun,digital...
- CMD_ENV Set to one of posix,old,linux,bsd,sun,digital...
- I_WANT_A_BROKEN_PS Force obsolete command line interpretation.
- LC_TIME Date format.
- PS_COLORS Not currently supported.
- PS_FORMAT Default output format override.
- PS_SYSMAP Default namelist (System.map) location.
- PS_SYSTEM_MAP Default namelist (System.map) location.
- POSIXLY_CORRECT Don't find excuses to ignore bad "features".
- UNIX95 Don't find excuses to ignore bad "features".
- _XPG Cancel CMD_ENV=irix non-standard behavior.
-
-In general, it is a bad idea to set these variables. The one exception
-is CMD_ENV or PS_PERSONALITY, which could be set to Linux for normal
-systems. Without that setting, ps follows the useless and bad parts
-of the Unix98 standard.
-
-
-PERSONALITY
- 390 like the S/390 OpenEdition ps
- aix like AIX ps
- bsd like FreeBSD ps (totally non-standard)
- compaq like Digital Unix ps
- debian like the old Debian ps
- digital like Digital Unix ps
- gnu like the old Debian ps
- hp like HP-UX ps
- hpux like HP-UX ps
- irix like Irix ps
- linux ***** RECOMMENDED *****
- old like the original Linux ps (totally non-standard)
- posix standard
- sco like SCO ps
- sgi like Irix ps
- sun like SunOS 4 ps (totally non-standard)
- sunos like SunOS 4 ps (totally non-standard)
- sysv standard
- unix standard
- unix95 standard
- unix98 standard
-
-
-EXAMPLES
-To see every process on the system using standard syntax:
- ps -e
-To see every process on the system using BSD syntax:
- ps ax
-To see every process except those running as root (real & effective ID)
- ps -U root -u root -N
-To see every process with a user-defined format:
- ps -eo pid,tt,user,fname,tmout,f,wchan
-Odd display with AIX field descriptors:
- ps -o "%u : %U : %p : %a"
-Print only the process IDs of syslogd:
- ps -C syslogd -o pid=
-
-SEE ALSO
-top(1) pgrep(1) pstree(1) proc(5)
-
-STANDARDS
-This ps conforms to version 2 of the Single Unix Specification.
-
-AUTHOR
-ps was originally written by Branko Lankester <lankeste@fwi.uva.nl>. Michael
-K. Johnson <johnsonm@redhat.com> re-wrote it significantly to use the proc
+.PD 0
+.TP 5
+<
+high\-priority (not nice to other users)
+.TP
+N
+low\-priority (nice to other users)
+.TP
+L
+has pages locked into memory (for real\-time and custom\ IO)
+.TP
+s
+is a session leader
+.TP
+l
+is multi-threaded (using CLONE_THREAD, like NPTL pthreads\ do)
+.TP
++
+is in the foreground process group
+.PD
+.PP
+.PP
+.SH "OBSOLETE SORT KEYS"
+These keys are used by the BSD \fBO\fR option (when it is used for
+sorting). The GNU \fB\-\-sort\fR option doesn't use these keys, but the
+specifiers described below in the \fBSTANDARD FORMAT SPECIFIERS\fR
+section. Note that the values used in sorting are the internal
+values \fBps\fR uses and not the "cooked" values used in some of
+the output format fields (e.g. sorting on tty will sort into
+device number, not according to the terminal name displayed).
+Pipe \fBps\fR output into the \fIsort\fR(1) command if you want
+to sort the cooked values.
+
+.TS
+l l lw(3i).
+\fBKEY LONG DESCRIPTION\fR
+c cmd simple name of executable
+C pcpu cpu utilization
+f flags flags as in long format F field
+g pgrp process group ID
+G tpgid controlling tty process group ID
+j cutime cumulative user time
+J cstime cumulative system time
+k utime user time
+m min_flt number of minor page faults
+M maj_flt number of major page faults
+n cmin_flt cumulative minor page faults
+N cmaj_flt cumulative major page faults
+o session session ID
+p pid process ID
+P ppid parent process ID
+r rss resident set size
+R resident resident pages
+s size memory size in kilobytes
+S share amount of shared pages
+t tty the device number of the controling tty
+T start_time time process was started
+U uid user ID number
+u user user name
+v vsize total VM size in kB
+y priority kernel scheduling priority
+.\"K stime system time (conflict, system vs. start time)
+.TE
+.PP
+.PP
+.SH "AIX FORMAT DESCRIPTORS"
+This \fBps\fR supports AIX format descriptors, which work somewhat like the
+formatting codes of \fIprintf\fR(1) and \fIprintf\fR(3). For example, the normal
+default output can be produced with this: \fBps\ \-eo\ "%p\ %y\ %x\ %c"\fR.
+The\ \fBNORMAL\fR codes are described in the next section.
+.TS
+l l l.
+\fBCODE NORMAL HEADER\fR
+%C pcpu %CPU
+%G group GROUP
+%P ppid PPID
+%U user USER
+%a args COMMAND
+%c comm COMMAND
+%g rgroup RGROUP
+%n nice NI
+%p pid PID
+%r pgid PGID
+%t etime ELAPSED
+%u ruser RUSER
+%x time TIME
+%y tty TTY
+%z vsz VSZ
+.TE
+
+.SH "STANDARD FORMAT SPECIFIERS"
+Here are the different keywords that may be used to control the output
+format (e.g. with option \fB\-o\fR) or to sort the selected processes
+with the GNU\-style \fB\-\-sort\fR option.
+
+For example: \fBps\ \-eo\ pid,user,args\ \-\-sort\ user\fR
+
+This version of \fBps\fR tries to recognize most of the keywords used in
+other implementations of \fBps\fR.
+
+The following user\-defined format specifiers may contain
+spaces: \fBargs\fR, \fBcmd\fR, \fBcomm\fR, \fBcommand\fR, \fBfname\fR,
+\fBucmd\fR, \fBucomm\fR,
+\fBlstart\fR, \fBbsdstart\fR, \fBstart\fR.
+
+Some keywords may not be available for sorting.
+
+.\" #######################################################################
+.\" lB1 lB1 lB1 lB1 s s s
+.\" lB1 l1 l1 l1 s s s.
+.\"
+.\" lB1 lB1 lBw(5.5i)
+.\" lB1 l1 l.
+.\"
+.TS
+expand;
+lB1 lB1 lBw(\n[ColSize]n)
+lB1 l1 l.
+CODE HEADER DESCRIPTION
+
+%cpu %CPU T{
+cpu utilization of the process in "##.#" format. It is the CPU time
+used divided by the time the process has been running (cputime/realtime
+ratio), expressed as a percentage. It will not add up to 100% unless you
+are lucky. (alias\ \fBpcpu\fR).
+T}
+
+%mem %MEM T{
+ratio of the process's resident set size to the physical memory on
+the machine, expressed as a percentage. (alias\ \fBpmem\fR).
+T}
+
+args COMMAND T{
+command with all its arguments as a string. May chop as desired.
+Modifications to the arguments are not shown. The output in this column
+may contain spaces. (alias\ \fBcmd\fR,\ \fBcommand\fR).
+T}
+
+blocked BLOCKED T{
+mask of the blocked signals, see \fIsignal\fR(7).
+According to the width of the field,
+a\ 32\-bit or 64\-bit mask in hexadecimal format is displayed.
+(alias\ \fBsig_block\fR,\ \fBsigmask\fR).
+T}
+
+bsdstart START T{
+time the command started. If the process was started less
+than 24 hours ago, the output format is "\ HH:MM",
+else it is "mmm\ dd"
+(where mmm is the three letters of the month).
+T}
+
+bsdtime TIME T{
+accumulated cpu time, user\ +\ system. The display format is usualy
+"MMM:SS", but can be shifted to the right if the process used more than 999
+minutes of cpu time.
+T}
+
+c C T{
+integer value of the processor utilisation percentage. (see\ \fB%cpu\fR).
+T}
+
+caught CAUGHT T{
+mask of the caught signals, see \fIsignal\fR(7). According to the
+width of the field, a 32 or 64 bits mask in hexadecimal format is
+displayed. (alias\ \fBsig_catch\fR,\ \fBsigcatch\fR).
+T}
+
+class CLS T{
+scheduling class of the process. (alias\ \fBpolicy\fR,\ \fBcls\fR).
+Field's possible values are:
+.br
+\- not reported
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+? unknown value
+T}
+
+cls CLS T{
+scheduling class of the process. (alias\ \fBpolicy\fR,\ \fBclass\fR).
+Field's possible values are:
+.br
+\- not reported
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+? unknown value
+T}
+
+cmd CMD T{
+see \fBargs\fR. (alias\ \fBargs\fR,\ \fBcommand\fR).
+T}
+
+comm COMMAND T{
+command name (only\ the executable\ name). The output in this
+column may contain spaces. (alias\ \fBucmd\fR,\ \fBucomm\fR).
+T}
+
+command COMMAND T{
+see \fBargs\fR. (alias\ \fBargs\fR,\ \fBcmd\fR).
+T}
+
+cp CP T{
+per\-mill CPU usage. (see\ \fB%cpu\fR).
+T}
+
+cputime TIME T{
+cumulative CPU time, "[dd\-]hh:mm:ss" format. (alias\ \fBtime\fR).
+T}
+
+egid EGID T{
+effective group ID number of the process as a decimal integer.
+(alias\ \fBgid\fR).
+T}
+
+egroup EGROUP T{
+effective group ID of the process. This will be the textual group ID,
+if it can be obtained and the field width permits, or a decimal
+representation otherwise. (alias\ \fBgroup\fR).
+T}
+
+eip EIP T{
+instruction pointer.
+T}
+
+esp ESP T{
+stack pointer.
+T}
+
+etime ELAPSED T{
+elapsed time since the process was started,
+in\ the form\ [[dd\-]hh:]mm:ss.
+T}
+
+euid EUID T{
+effective user\ ID. (alias\ \fBuid\fR).
+T}
+
+euser EUSER T{
+effective user\ name. This will be the textual
+user\ ID, if\ it can be obtained and the field width permits,
+or\ a\ decimal representation otherwise.
+The\ \fBn\fR\ option can be used
+to force the decimal representation.
+(alias\ \fBuname\fR,\ \fBuser\fR).
+T}
+
+f F T{
+flags associated with the process, see the \fBPROCESS FLAGS\fR section.
+(alias\ \fBflag\fR,\ \fBflags\fR).
+T}
+
+fgid FGID T{
+filesystem access group\ ID. (alias\ \fBfsgid\fR).
+T}
+
+fgroup FGROUP T{
+filesystem access group\ ID.
+This will be the textual user\ ID, if\ it can be obtained
+and the field width permits,
+or\ a\ decimal representation otherwise.
+(alias\ \fBfsgroup\fR).
+T}
+
+flag F T{
+see\ \fBf\fR. (alias\ \fBf\fR,\ \fBflags\fR).
+T}
+
+flags F T{
+see\ \fBf\fR. (alias\ \fBf\fR,\ \fBflag\fR).
+T}
+
+fname COMMAND T{
+first 8 bytes of the base name of the process's executable file.
+The output in this column may contain spaces.
+T}
+
+fuid FUID T{
+filesystem access user\ ID. (alias\ \fBfsuid\fR).
+T}
+
+fuser FUSER T{
+filesystem access user\ ID. This will be the textual user\ ID,
+if\ it can be obtained and the field width permits,
+or\ a\ decimal representation otherwise.
+T}
+
+gid GID T{
+see\ \fBegid\fR. (alias\ \fBegid\fR).
+T}
+
+group GROUP T{
+see\ \fBegroup\fR. (alias\ \fBegroup\fR).
+T}
+
+ignored IGNORED T{
+mask of the ignored signals, see \fIsignal\fR(7). According to the
+width of the field, a\ 32\-bit or 64\-bit mask in hexadecimal format
+is displayed. (alias \fBsig_ignore\fR, \fBsigignore\fR).
+T}
+
+label LABEL T{
+security label, most commonly used for SE\ Linux context data.
+This is for the \fIMandatory Access Control\fR ("MAC") found on
+high\-security systems.
+T}
+
+lstart STARTED T{
+time the command started.
+T}
+
+lwp LWP T{
+lwp (light weight process, or thread) ID of the lwp being reported.
+(alias\ \fBspid\fR,\ \fBtid\fR).
+T}
+
+ni NI T{
+nice value. This ranges from 19 (nicest) to \-20 (not\ nice to\ others),
+see\ \fInice\fR(1). (alias\ \fBnice\fR).
+T}
+
+nice NI T{
+see\ \fBni\fR. (alias\ \fBni\fR).
+T}
+
+nlwp NLWP T{
+number of lwps (threads) in the process. (alias\ \fBthcount\fR).
+T}
+
+nwchan WCHAN T{
+address of the kernel function where the process is sleeping
+(use \fBwchan\fR if you want the kernel function name).
+Running tasks will display a dash ('\-') in this column.
+T}
+
+pcpu %CPU T{
+see\ \fB%cpu\fR. (alias\ \fB%cpu\fR).
+T}
+
+pending PENDING T{
+mask of the pending signals. See\ \fIsignal\fR(7). Signals pending on
+the process are distinct from signals pending on individual threads.
+Use the \fBm\fR option or the \fB\-m\fR option to see both.
+According to the width of the field, a\ 32\-bit or 64\-bit mask in
+hexadecimal format is displayed. (alias\ \fBsig\fR).
+T}
+
+pgid PGID T{
+process group\ ID or, equivalently, the process\ ID of the
+process group leader. (alias\ \fBpgrp\fR).
+T}
+
+pgrp PGRP T{
+see\ \fBpgid\fR. (alias\ \fBpgid\fR).
+T}
+
+pid PID T{
+process\ ID number of the process.
+T}
+
+pmem %MEM T{
+see\ \fB%mem\fR. (alias\ \fB%mem\fR).
+T}
+
+policy POL T{
+scheduling class of the process. (alias\ \fBclass\fR,\ \fBcls\fR).
+Possible values are:
+.br
+\- not reported
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+? unknown value
+T}
+
+ppid PPID T{
+parent process ID.
+T}
+
+psr PSR T{
+processor that process is currently assigned to.
+T}
+
+rgid RGID T{
+real group ID.
+T}
+
+rgroup RGROUP T{
+real group name. This will be the textual group\ ID, if\ it can be
+obtained and the field width permits,
+or\ a\ decimal representation otherwise.
+T}
+
+rss RSS T{
+resident set size, the non\-swapped physical memory that
+a task has used (in\ kiloBytes).
+(alias\ \fBrssize\fR,\ \fBrsz\fR).
+T}
+
+rssize RSS T{
+see\ \fBrss\fR. (alias\ \fBrss\fR,\ \fBrsz\fR).
+T}
+
+rsz RSZ T{
+see\ \fBrss\fR. (alias\ \fBrss\fR,\ \fBrssize\fR).
+T}
+
+rtprio RTPRIO T{
+realtime priority.
+T}
+
+ruid RUID T{
+real user\ ID.
+T}
+
+ruser RUSER T{
+real user\ ID. This will be the textual user\ ID,
+if\ it can be obtained and the field width permits,
+or\ a\ decimal representation otherwise.
+T}
+
+s S T{
+minimal state display (one\ character).
+See\ section \fBPROCESS STATE CODES\fR for the different values.
+See\ also \fBstat\fR if you want additionnal
+information displayed. (alias\ \fBstate\fR).
+T}
+
+sched SCH T{
+scheduling policy of the process. The policies sched_other, sched_fifo,
+and sched_rr are respectively displayed as 0,\ 1,\ and\ 2.
+T}
+
+sess SESS T{
+session\ ID or, equivalently, the process\ ID of the session\ leader.
+(alias\ \fBsession\fR,\ \fBsid\fR).
+T}
+
+sgi_p P T{
+processor that the process is currently executing on.
+Displays "*" if the process is not currently running or runnable.
+T}
+
+sgid SGID T{
+saved group\ ID.
+(alias\ \fBsvgid\fR).
+T}
+
+sgroup SGROUP T{
+saved group\ name. This will be the textual group\ ID,
+if\ it can be obtained and the field width permits,
+or\ a\ decimal representation otherwise.
+T}
+
+sid SID T{
+see\ \fBsess\fR. (alias\ \fBsess\fR,\ \fBsession\fR).
+T}
+
+sig PENDING T{
+see\ \fBpending\fR. (alias\ \fBpending\fR,\ \fBsig_pend\fR).
+T}
+
+sigcatch CAUGHT T{
+see\ \fBcaught\fR. (alias\ \fBcaught\fR,\ \fBsig_catch\fR).
+T}
+
+sigignore IGNORED T{
+see\ \fBignored\fR. (alias\ \fBignored\fR,\ \fBsig_ignore\fR).
+T}
+
+sigmask BLOCKED T{
+see\ \fBblocked\fR. (alias\ \fBblocked\fR,\ \fBsig_block\fR).
+T}
+
+size SZ T{
+approximate amount of swap space that would be required
+if the process were to dirty all writable pages and then
+be swapped out.
+This number is very\ rough!
+T}
+
+spid SPID T{
+see \fBlwp\fR. (alias\ \fBlwp\fR,\ \fBtid\fR).
+T}
+
+stackp STACKP T{
+address of the bottom (start) of stack for the process.
+T}
+
+start STARTED T{
+time the command started.
+If the process was started less than 24 hours ago,
+the output format is "HH:MM:SS",
+else it is "\ \ mmm\ dd"
+(where mmm is a three\-letter month\ name).
+T}
+
+start_time START T{
+starting time or date of the process.
+Only the year will be displayed if the process was not
+started the same year \fBps\fR was invoked,
+or\ "mmmdd" if\ it was not started the same day,
+or\ "HH:MM" otherwise.
+T}
+
+stat STAT T{
+multi\-character process state.
+See\ section \fBPROCESS STATE CODES\fR
+for the different values meaning.
+See also \fBs\fR and \fBstate\fR if you just want
+the first character displayed.
+T}
+
+state S T{
+see\ \fBs\fR. (alias\ \fBs\fR).
+T}
+
+suid SUID T{
+saved user\ ID. (alias\ \fBsvuid\fR).
+T}
+
+suser SUSER T{
+saved user name. This will be the textual user\ ID,
+if\ it can be obtained and the field width permits,
+or\ a\ decimal representation otherwise.
+(alias\ \fBsvuser\fR).
+T}
+
+svgid SVGID T{
+see\ \fBsgid\fR. (alias\ \fBsgid\fR).
+T}
+
+svuid SVUID T{
+see\ \fBsuid\fR. (alias\ \fBsuid\fR).
+T}
+
+sz SZ T{
+size in physical pages of the core image of the process.
+This includes text, data, and stack space.
+T}
+
+thcount THCNT T{
+see \fBnlwp\fR. (alias\ \fBnlwp\fR).
+number of kernel threads owned by the process.
+T}
+
+tid TID T{
+see\ \fBlwp\fR. (alias\ \fBlwp\fR).
+T}
+
+time TIME T{
+cumulative CPU\ time, "[dd\-]hh:mm:ss" format. (alias\ \fBcputime\fR).
+T}
+
+tname TTY T{
+controlling tty (terminal).
+(alias\ \fBtt\fR,\ \fBtty\fR).
+T}
+
+tpgid TPGID T{
+ID of the foreground process group on the tty (terminal) that
+the process is connected to, or \-1 if the process is not connected
+to a tty.
+T}
+
+tt TT T{
+controlling tty (terminal). (alias\ \fBtname\fR,\ \fBtty\fR).
+T}
+
+tty TT T{
+controlling tty (terminal). (alias\ \fBtname\fR,\ \fBtt\fR).
+T}
+
+ucmd CMD T{
+see \fBcomm\fR. (alias\ \fBcomm\fR,\ \fBucomm\fR).
+T}
+
+ucomm COMMAND T{
+see \fBcomm\fR. (alias\ \fBcomm\fR,\ \fBucmd\fR).
+T}
+
+uid UID T{
+see \fBeuid\fR. (alias\ \fBeuid\fR).
+T}
+
+uname USER T{
+see \fBeuser\fR. (alias\ \fBeuser\fR,\ \fBuser\fR).
+T}
+
+user USER T{
+see \fBeuser\fR. (alias\ \fBeuser\fR,\ \fBuname\fR).
+T}
+
+vsize VSZ T{
+virtual memory usage of entire process.
+vm_lib\ +\ vm_exe\ +\ vm_data\ +\ vm_stack
+T}
+
+vsz VSZ T{
+see \fBvsize\fR. (alias\ \fBvsize\fR).
+T}
+
+wchan WCHAN T{
+name of the kernel function in which the process is sleeping,
+a\ "\-"\ if the process is running,
+or a "*"\ if the process is multi\-threaded and
+\fBps\fR is not displaying threads.
+T}
+.TE
+.\" #######################################################################
+.PP
+.PP
+.SH "ENVIRONMENT VARIABLES"
+The following environment variables could affect \fBps\fR:
+.TP 3
+.B COLUMNS
+Override default display width.
+.TP
+.B LINES
+Override default display height.
+.TP
+.B PS_PERSONALITY
+Set to one of posix, old, linux, bsd, sun, digital...
+(see\ section\ \fBPERSONALITY\fR\ below).
+.TP
+.B CMD_ENV
+Set to one of posix, old, linux, bsd, sun, digital...
+(see\ section\ \fBPERSONALITY\fR\ below).
+.TP
+.B I_WANT_A_BROKEN_PS
+Force obsolete command line interpretation.
+.TP
+.B LC_TIME
+Date format.
+.TP
+.B PS_COLORS
+Not currently supported.
+.TP
+.B PS_FORMAT
+Default output format override.
+.TP
+.B PS_SYSMAP
+Default namelist (System.map) location.
+.TP
+.B PS_SYSTEM_MAP
+Default namelist (System.map) location.
+.TP
+.B POSIXLY_CORRECT
+Don't find excuses to ignore bad "features".
+.TP
+.B POSIX2
+When set to "on", acts as \fBPOSIXLY_CORRECT\fR.
+.TP
+.B UNIX95
+Don't find excuses to ignore bad "features".
+.TP
+.B _XPG
+Cancel \fBCMD_ENV\fI=irix\fR non\-standard behavior.
+.PP
+In general, it\ is a bad idea to set these variables.
+The one exception is \fBCMD_ENV\fR or \fBPS_PERSONALITY\fR,
+which could be set to Linux for normal systems.
+Without that setting,
+\fBps\fR follows the useless and bad parts of the Unix98 standard.
+.PP
+.PP
+.SH "PERSONALITY"
+.TS
+l l.
+390 like the S/390 OpenEdition \fBps\fR
+aix like AIX \fBps\fR
+bsd like FreeBSD \fBps\fR (totally\ non\-standard)
+compaq like Digital Unix \fBps\fR
+debian like the old Debian \fBps\fR
+digital like Tru64 (was Digital\ Unix, was OSF/1) \fBps\fR
+gnu like the old Debian \fBps\fR
+hp like HP\-UX \fBps\fR
+hpux like HP\-UX \fBps\fR
+irix like Irix \fBps\fR
+linux ***** RECOMMENDED *****
+old like the original Linux \fBps\fR (totally\ non\-standard)
+os390 like OS/390 Open Edition \fBps\fR
+posix standard
+s390 like OS/390 Open Edition \fBps\fR
+sco like SCO \fBps\fR
+sgi like Irix \fBps\fR
+solaris2 like Solaris 2+ (SunOS 5) \fBps\fR
+sunos4 like SunOS 4 (Solaris 1) \fBps\fR (totally\ non\-standard)
+svr4 standard
+sysv standard
+tru64 like Tru64 (was Digital\ Unix, was OSF/1) \fBps\fR
+unix standard
+unix95 standard
+unix98 standard
+.TE
+.PP
+.PP
+.SH "SEE ALSO"
+\fItop\fR(1), \fIpgrep\fR(1), \fIpstree\fR(1), \fIproc\fR(5).
+.PP
+.PP
+.SH STANDARDS
+This \fBps\fR conforms to:
+.PP
+.PD 0
+.IP 1 4
+Version 2 of the Single Unix Specification
+.IP 2 4
+The Open Group Technical Standard Base Specifications, Issue\ 6
+.IP 3 4
+IEEE Std 1003.1, 2004\ Edition
+.IP 4 4
+X/Open System Interfaces Extension [UP\ XSI]
+.IP 5 4
+ISO/IEC 9945:2003
+.PD
+.PP
+.SH AUTHOR
+\fBps\fR was originally written by Branko Lankester <lankeste@fwi.uva.nl>. Michael
+K. Johnson <johnsonm@redhat.com> re\-wrote it significantly to use the proc
filesystem, changing a few things in the process. Michael Shields
-<mjshield@nyx.cs.du.edu> added the pid-list feature. Charles Blake
-<cblake@bbn.com> added multi-level sorting, the dirent-style library, the
-device name-to-number mmaped database, the approximate binary search
+<mjshield@nyx.cs.du.edu> added the pid\-list feature. Charles Blake
+<cblake@bbn.com> added multi\-level sorting, the dirent\-style library, the
+device name\-to\-number mmaped database, the approximate binary search
directly on System.map, and many code and documentation cleanups. David
-Mossberger-Tang wrote the generic BFD support for psupdate. Albert Cahalan
-<acahalan@cs.uml.edu> rewrote ps for full Unix98 and BSD support, along with
+Mossberger\-Tang wrote the generic BFD support for psupdate. Albert Cahalan
+<albert@users.sf.net> rewrote ps for full Unix98 and BSD support, along with
some ugly hacks for obsolete and foreign syntax.
-Please send bug reports to <acahalan@cs.uml.edu>
+Please send bug reports to <procps\-feedback@lists.sf.net>.
+No\ subscription is required or suggested.