ps(1) UNIX System V(BSD Compatibility Package) ps(1)
NAME
ps - display the status of current processes
SYNOPSIS
/usr/ucb/ps [ -acglnrSuUvwx ] [ -tterm ] [ num ]
DESCRIPTION
The ps command displays information about processes. Normally, only
those processes that are running with your effective user ID and are
attached to a controlling terminal (see termio(4)) are shown. Additional
categories of processes can be added to the display using various
options. In particular, the -a option allows you to include processes
that are not owned by you (that do not have your user ID), and the -x
option allows you to include processes without control terminals. When
you specify both -a and -x, you get processes owned by anyone, with or
without a control terminal. The -r option restricts the list of
processes printed to running and runnable processes.
ps displays the process ID, under PID; the control terminal (if any),
under TT; the cpu time used by the process so far, including both user
and system time, under TIME; the state of the process, under S; and
finally, an indication of the COMMAND that is running.
The state is given by a single letter from the following:
O Process is running on a processor.
S Sleeping. Process is waiting for an event to complete.
R Runnable. Process is on run queue.
I Idle. Process is being created.
Z Zombie state. Process terminated and parent not waiting.
T Traced. Process stopped by a signal because parent is tracing
it.
X SXBRK state. Process is waiting for more primary memory.
The following options must all be combined to form the first argument:
-a Include information about processes owned by others.
-c Display 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.
-g Display 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.
10/89 Page 1
ps(1) UNIX System V(BSD Compatibility Package) ps(1)
-l Display a long listing, with fields F, PPID, CP, PRI, NI, SZ, RSS
and WCHAN as described below.
-n Produce numerical output for some fields. In a user listing, the
USER field is replaced by a UID field.
-r Restrict output to running and runnable processes.
-S Display accumulated CPU time used by this process and all of its
reaped children.
-u Display user-oriented output. This includes fields USER, SZ, RSS
and START as described below.
-U Update a private database where ps keeps system information.
-v Display a version of the output containing virtual memory. This
includes fields SIZE and RSS, described below.
-w Use a wide output format (132 columns rather than 80); if repeated,
that is, -ww, use arbitrarily wide output. This information is used
to decide how much of long commands to print.
-x Include processes with no controlling terminal.
-tterm
List only process data associated with the terminal, term. Terminal
identifiers may be specified in one of two forms: the device's file
name (for example, tty04 or term/14) or, if the device's file name
starts with tty, just the digit identifier (for example, 04).
num A process number may be given, in which case the output is
restricted to that process. This option must be supplied last.
DISPLAY FORMATS
Fields that are not common to all output formats:
USER Name of the owner of the process.
NI Process scheduling increment [see getpriority(3) and nice(3C)].
SIZE
SZ The combined size of the data and stack segments (in kilobyte units)
RSS Real memory (resident set) size of the process (in kilobyte units).
UID Numerical user-ID of process owner.
PPID Numerical ID of parent of process.
Page 2 10/89
ps(1) UNIX System V(BSD Compatibility Package) ps(1)
CP Short-term CPU utilization factor (used in scheduling).
PRI The priority of the process (higher numbers mean lower priority).
START
The starting time of the process, given in hours, minutes, and
seconds. A process begun more than 24 hours before the ps inquiry
is executed is given in months and days.
WCHAN
The address of an event for which the process is sleeping, or in
SXBRK state (if blank, the process is running).
F Flags (hexadecimal and additive) associated with the process:
00 Process has terminated. Process table now available.
01 A system process, always in primary memory.
02 Parent is tracing process.
04 Tracing parent's signal has stopped process. Parent is
waiting, see ptrace(2).
08 Process is currently in primary memory.
10 Process currently in primary memory, locked until an event is
completed.
A process that has exited and has a parent, but has not yet been waited
for by the parent is marked <defunct>; otherwise, ps tries to determine
the command name and arguments given when the process was created by
examining the user block.
FILES
/dev
/dev/sxt/*
/dev/tty*
/dev/xt/* terminal (tty) names searcher files
/dev/kmem kernel virtual memory
/dev/swap default swap device
/dev/mem memory
/etc/passwd UID information supplier
/etc/psdata internal data structure
SEE ALSO
getpriority(3), nice(3C)
kill(1) in the User's Reference Manual
whodo(1) in the System Administrator's Reference Manual
lseek(2) in the Programmer's Reference Manual
NOTES
Things can change while ps is running; the picture it gives is only a
close approximation to the current state. Some data printed for defunct
processes is irrelevant.
10/89 Page 3
ps(1) UNIX System V(BSD Compatibility Package) ps(1)
If no term or num is specified, ps checks the standard input, the
standard output, and the standard error in that order, looking for the
controlling terminal and will attempt to report on processes associated
with the controlling terminal. In this situation, if the standard input,
the standard output, and the standard error are all redirected, ps will
not find a controlling terminal, so there will be no report.
On a heavily loaded system, ps may report an lseek(2) error and exit. ps
may seek to an invalid user area address, having obtained the address of
process' user area, ps may not be able to seek to that address before the
process exits and the address becomes invalid.
Page 4 10/89