NAME
ps - process status
SYNOPSIS
ps [ aceglnstuvwxU# ]
DESCRIPTION
Ps prints information about processes. Normally, only your
processes are candidates to be printed by ps; specifying a
causes
other users’ processes to be candidates to be printed;
specifying x
includes processes without control terminals in the
candidate pool.
All output formats include, for
each process, the process id PID,
control terminal of the process TT, cpu time used by the
process
TIME (this includes both user and system time), the state
STAT of
the process, and an indication of the COMMAND which is
running.
The state is given by a sequence of letters, e.g.
"RWNA". The
first letter indicates the runnability of the process: R for
runnable processes, T for stopped processes, P for processes
in
page wait, D for those in disk (or other short term) waits,
S for
those sleeping for less than about 20 seconds, and I for
idle
(sleeping longer than about 20 seconds) processes.
Additional
characters after these, if any, indicate additional state
information. The letter W indicates that a process is
swapped out,
showing W if it is, or a blank if it is loaded (in-core). A
process which has specified a soft limit on memory
requirements and
which is exceeding that limit shows >; such a process is
(necessarily) not swapped. An additional letter may indicate
whether a process is running with altered CPU scheduling
priority
(nice); if the process priority is reduced, an N is shown,
if the
process priority has been artificially raised then a
‘<’ is shown.
Here are the options:
a asks for information about all
processes with terminals
(ordinarily only one’s own processes are
displayed).
c prints the command name, as
stored internally in the system for
purposes of accounting, rather than the command arguments,
which are kept in the process’ address space. This is
more
reliable, if less informative, since the process is free to
destroy the latter information.
e Asks for the environment to be
printed as well as the arguments
to the command.
g Asks for all processes.
Without this option, ps only prints
"interesting" processes. Processes are deemed to
be
uninteresting if they are process group leaders. This
normally
eliminates top-level command interpreters and processes
waiting
for users to login on free terminals.
l asks for a long listing, with
fields F, UID, PID, PPID, PRI,
NI, ADDR, SIZE, RSS, STAT, TT, TIME and COMMAND as described
below.
n Asks for numerical output. In
a user listing, the USER field
is replaced by a UID field.
tx restricts output to processes
whose controlling tty is x (which
should be specified as printed by ps, e.g. t3 for tty3, tco
for console, td0 for ttyd0, t? for processes with no tty, t
for
processes at the current tty, etc). This option must be the
last one given.
u A user oriented output is
produced. This includes fields USER,
%CPU, NICE, SIZE, and RSS as described below.
v A version of the output
containing virtual memory statistics is
output. This includes fields RE, SL, PAGEIN, SIZE, RSS, LIM,
TSIZ, TRS, %CPU and %MEM, described below.
w Use a wide output format (132
columns rather than 80); if
repeated, e.g. ww, use arbitrarily wide output. This
information is used to decide how much of long commands to
print.
x asks even about processes with no terminal.
# A process number may be given,
(indicated here by #), in which
case the output is restricted to that process. This option
must also be last.
Fields which are not common to
all output formats:
USER name of the owner of the process
%CPU cpu utilization of the process; this is a decaying
average over up to a minute of previous (real) time.
Since the time base over which this is computed varies
(since processes may be very young) it is possible for
the sum of all %CPU fields to exceed 100%.
NICE (or NI) process scheduling increment (see
setpriority(2))
SIZE (or SZ) virtual size of the process (in 1024 byte
units)
RSS real memory (resident set) size of the process (in 1024
byte units)
LIM soft limit on memory used, specified via a call to
setrlimit(2); if no limit has been specified then shown
as xx
TSIZ size of text (shared program) image
TRS size of resident (real memory) set of text
%MEM percentage of real memory used by this process.
RE residency time of the process (seconds in core)
SL sleep time of the process (seconds blocked)
PAGEIN number of disk i/o’s resulting from references
by the
process to pages not loaded in core.
UID numerical user-id of process owner
PPID numerical id of parent of process
PRI process priority (non-positive when in non-interruptible
wait)
ADDR text address of the process
F flags associated with process as in <sys/proc.h>:
SLOAD 000001 in core
SSWAP 000008 save area flag
STRC 000010 process is being traced
SWTED 000020 another tracing flag
SULOCK 000040 user settable lock in core
SWEXIT 000400 working on exiting
SPHYSIO 000800 doing physical i/o (bio.c)
SPAGI 008000 init data space on demand from inode
SANOM 010000 system detected anomalous vm behavior
SUANOM 020000 user warned of anomalous vm behavior
STIMO 040000 timing out during sleep
SDETACH 080000 detached inherited by init
SOUSIG 100000 using old signal mechanism
A process that has exited and
has a parent that has not yet waited
for the process is marked <defunct>; a process which
is blocked
trying to exit is marked <exiting>; Ps makes an
educated guess as
to the file name and arguments given when the process was
created
by examining memory or the swap area. The method is
inherently
somewhat unreliable and in any event a process is entitled
to
destroy this information, so the names cannot be counted on
too
much.
FILES
/vmunix system namelist
/dev/kmem kernel memory
/dev searched to find swap device and tty names
SEE ALSO
kill(1), w(1)
BUGS
Things can change while ps is running; the picture it gives
is only
a close approximation to reality.