ps(1) USER COMMANDS 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. Nor-
mally, 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 termi-
nal. 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 com-
plete.
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 com-
mand 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 infor-
mation.
-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
Last change: BSD Compatibility Package 1
ps(1) USER COMMANDS ps(1)
and processes waiting for users to login on free termi-
nals.
-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 infor-
mation.
-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
Last change: BSD Compatibility Package 2
ps(1) USER COMMANDS ps(1)
(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.
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 exe-
cuted 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 pro-
cess 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 pro-
cess. 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>; other-
wise, 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/ps_data internal data structure
Last change: BSD Compatibility Package 3
ps(1) USER COMMANDS ps(1)
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. If no
term or num is specified, ps checks the standard input, the
standard output, and the standard error in that order, look-
ing 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.
Last change: BSD Compatibility Package 4