PS(1) Linux User's
Manual PS(1)
NAME
ps - report a snapshot of the current processes.
SYNOPSIS
ps [options]
DESCRIPTION
ps displays information about a selection of the active processes.
If you want
a repetitive update of the selection and the displayed information,
use top(1)
instead.
This version of ps accepts several kinds of options:
1 UNIX options, which may be
grouped and must be preceded by a dash.
2 BSD options, which may be
grouped and must not be used with a dash.
3 GNU long options, which are
preceded by two dashes.
Options of different types may be freely mixed, but conflicts
can appear.
There are some synonymous options, which are functionally
identical, due to
the many standards and ps implementations that this ps is
compatible with.
Note that "ps -aux" is distinct from "ps aux". The POSIX and
UNIX standards
require that "ps -aux" print all processes owned by a user named
"x", as well
as printing all processes that would be selected by the -a option.
If the user
named "x" does not exist, this ps may interpret the command as "ps
aux"
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.
By default, ps selects all processes with the same effective
user ID
(euid=EUID) as the current user and associated with the same
terminal as the
invoker. It displays the process ID (pid=PID), the terminal
associated with
the process (tname=TTY), the cumulated CPU time in [dd-]hh:mm:ss
format
(time=TIME), and the executable name (ucmd=CMD). Output is unsorted
by
default.
The use of BSD-style options will add process state (stat=STAT)
to the default
display and show the command args (args=COMMAND) instead of the
executable
name. You can override this with the PS_FORMAT environment
variable. 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. These
effects are not considered when options are described as being
"identical"
below, so -M will be considered identical to Z and so on.
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 given selection criteria.
EXAMPLES
To see every process on the system using standard syntax:
ps -e
ps -ef
ps -eF
ps -ely
To see every process on the system using BSD syntax:
ps ax
ps axu
To print a process tree:
ps -ejH
ps axjf
To get info about threads:
ps -eLf
ps axms
To get security info:
ps -eo
euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
To see every process running as root (real &
effective ID) in user format:
ps -U root -u root u
To see every process with a user-defined format:
ps -eo
pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo
stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps
-eopid,tt,user,fname,tmout,f,wchan
Print only the process IDs of syslogd:
ps -C syslogd -o pid=
Print only the name of PID 42:
ps -p 42 -o comm=
SIMPLE PROCESS SELECTION
-A Select all processes. Identical to -e.
-N Select all processes except those that fulfill the specified
conditions. (negates the selection) Identical to --deselect.
T Select all processes associated with this terminal. Identical
to the t option without any argument.
-a Select all processes except session leaders (see getsid(2))
and processes not associated with a terminal.
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 ps 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 ps to list all processes with a terminal (tty), or to
list all processes when used together with the x option.
-d Select all processes except session leaders.
-e Select all processes. Identical to -A.
g Really all, even session leaders. This flag is obsolete and
may be discontinued in a future release. It is normally
implied by the a flag, and is only useful when operating in
the sunos4 personality.
r Restrict the selection to only running processes.
x Lift the BSD-style "must have a tty" restriction, which is
imposed upon the set of all processes when some BSD-style
(without "-") options are used or when the ps 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 ps to list all processes owned by you (same EUID as
ps), or to list all processes when used together with the a
option.
--deselect Select all processes except those that fulfill the specified
conditions. (negates the selection) Identical to -N.
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: ps -p "1 2" -p 3,4
-C
cmdlist Select by command name.
This selects the processes whose executable name is given in
cmdlist.
-G
grplist Select by real group ID (RGID) or name.
This selects the processes whose real group name or ID is in
the grplist list. The real group ID identifies the group of
the user who created the process, see getgid(2).
U
userlist Select by effective user ID (EUID) or name.
This selects the processes whose effective user name or ID is
in userlist. The effective user ID describes the user whose
file access permissions are used by the process
(see geteuid(2)). Identical to -u and --user.
-U
userlist select by real user ID (RUID) or name.
It selects the processes whose real user name or ID is in the
userlist list. The real user ID identifies the user who
created the process, see getuid(2).
-g
grplist Select by session OR by effective group name.
Selection by session is specified by many standards, but
selection by effective group is the logical behavior that
several other operating systems use. This ps 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 -s and --group options.
p
pidlist Select by process ID. Identical to -p and --pid.
-p
pidlist Select by PID.
This selects the processes whose process ID numbers appear in
pidlist. Identical to p and --pid.
-s
sesslist Select by session ID.
This selects the processes with a session ID specified
in sesslist.
t
ttylist Select by tty. Nearly identical to -t and --tty, but can also
be used with an empty ttylist to indicate the terminal
associated with ps. Using the T option is considered cleaner
than using T with an empty ttylist.
-t
ttylist Select by tty.
This selects the processes associated with the terminals
given
in ttylist. 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.
-u
userlist Select by effective user ID (EUID) or name.
This selects the processes whose effective user name or ID is
in userlist. The effective user ID describes the user whose
file access permissions are used by the process
(see geteuid(2)). Identical to U and --user.
--Group grplist Select by real group ID (RGID) or name. Identical
to -G.
--User userlist Select by real user ID (RUID) or name. Identical to
-U.
--group grplist Select by effective group ID (EGID) or name.
This selects the processes whose effective group name or ID
is
in grouplist. The effective group ID describes the group
whose
file access permissions are used by the process
(see geteuid(2)). The -g option is often an alternative
to --group.
--pid pidlist Select by process
ID. Identical to -p and p.
--ppid pidlist Select by parent process ID. This
selects the processes with a
parent process ID in pidlist. That is, it selects processes
that are children of those listed in pidlist.
--sid sesslist Select by session ID. Identical to
-s.
--tty ttylist Select by
terminal. Identical to -t and t.
--user userlist Select by effective user ID (EUID) or name.
Identical to -u
and U.
-123 Identical to --sid 123.
123 Identical to --pid 123.
OUTPUT FORMAT CONTROL
These options are used to choose the information displayed by ps.
The output
may differ by personality.
-F extra full format. See the -f option, which -F implies.
-O
format is like -o, but preloaded with some default columns.
Identical
to -o pid,format,state,tname,time,command or
-o pid,format,tname,time,cmd, see -o below.
O
format is preloaded o (overloaded).
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
(sorting or formatting), specify the option in some other way
(e.g. with -O or --sort). When used as a formatting option,
it
is identical to -O, with the BSD personality.
-M Add a column of security data. Identical to Z. (for SE Linux)
X Register format.
Z Add a column of security data. Identical to -M. (for SE Linux)
-c Show different scheduler information for the -l option.
-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 -L, the NLWP (number of threads) and LWP (thread ID)
columns will be added. See the c option, the format keyword
args, and the format keyword comm.
j BSD job control format.
-j jobs format
l display BSD long format.
-l long format. The -y option is often useful with this.
o
format specify user-defined format. Identical to -o and --format.
-o
format user-defined format.
format 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 STANDARD FORMAT SPECIFIERS section below.
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
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;
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 as
desired; DefSysV and DefBSD are macros that may be used to