Table of Contents
ps - display the status of current processes
ps [ [-]acCegjklnrSuUvwx ][ -tx ]|[ num ]
[ kernel-name ] [ c-dump-file ] [ swap-file ]
ps 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"
processes: runnable processes, those in page wait, or those
in short-term non-interruptible waits.
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 STAT; and finally, an indication of
the COMMAND that is running.
The state is given by a sequence of four letters, for example,
`RWNA'.
- First letter
- indicates the runnability of the process:
- R
- Runnable processes.
- T
- Stopped processes.
- P
- Processes in page wait.
- D
- Processes in non-interruptible waits;
typically short-term waits for disk
or NFS I/O.
- S
- Processes sleeping for less than
about 20 seconds.
- I
- Processes that are idle (sleeping
longer than about 20 seconds).
- Z
- Processes that have terminated and
that are waiting for their parent
process to do a wait(2V) ("zombie"
processes).
Second letter indicates whether a process is swapped out;
blank Represented as a SPACE character, in
this position indicates that the process
is loaded (in memory).
- W
- Process is swapped out.
- >
- Process has specified a soft limit on
memory requirements and has exceeded
that limit; such a process is (necessarily)
not swapped.
Third letter indicates whether a process is running with
altered CPU scheduling priority (nice(1)):
blank Represented as a SPACE character, in
this position indicates that the process
is running without special
treatment.
- N
- The process priority is reduced,
- <
- The process priority has been raised
artificially.
Fourth letter indicates any special treatment of the process
for virtual memory replacement. The
letters correspond to options to the vadvise(2)
system call. Currently the possibilities
are:
blank Represented as a SPACE character, in
this position stands for VA_NORM.
- A
- Stands for VA_ANOM. An A typically
represents a program which is doing
garbage collection.
- S
- Stands for VA_SEQL. An S is typical
of large image processing programs
that are using virtual memory to
sequentially address voluminous data.
kernel-name specifies the location of the system namelist.
If the -k option is given, c-dump-file tells ps where to
look for the core dump. Otherwise, the core dump is located
in the file /vmcore and this argument is ignored. swap-file
gives the location of a swap file other than the default,
/dev/drum.
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 accounting purposes, rather than the command
arguments, which are kept in the process address space.
This is more reliable, if less informative, as the process
is free to destroy the latter information.
- -C
- Display raw CPU time instead of the decaying average in
the %CPU field.
- -e
- Display the environment as well as the arguments to the
command.
- -g
- Display all processes. Without this option, ps prints
only "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.
- -j
- Display a listing useful for job control information,
with fields PPID, PID, PGID, SID, TT, TPGID, STAT, UID,
TIME, and COMMAND as described below.
With this option, the STAT field has three additional
letters:
- C
- indicates the process does not want SIGCHLD when a
child changes state done to job control.
- E
- The process has completed an exec, and the parent
can no longer change the process group of this
process.
- O
- The process is an orphan, with no parent process
to handle job control signals.
- -k
- Normally, kernel-name defaults to /vmunix, c-dump-file
is ignored, and swap-file defaults to /dev/drum. With
the -k option in effect, these arguments default to
/vmunix, /vmcore, and /dev/drum, respectively.
- -l
- Display a long listing, with fields F, PPID, CP, PRI,
NI, SZ, RSS, and WCHAN, as described below.
- -n
- Produce numeric output for some fields. In a long
listing, the WCHAN field is printed numerically rather
than symbolically, or, in a user listing, the USER
field is replaced by a UID field.
- -r
- Restrict output to "running" 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, %CPU, %MEM, SZ, RSS and START as described below.
- -U
- Update a private database where ps keeps system information.
Include `ps -U' in the /etc/rc file.
- -v
- Display a version of the output describing virtual
memory information. This includes fields RE, SL,
PAGEIN, SIZE, RSS, LIM, %CPU and %MEM, 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.
The following two options are mutually exclusive. When
specified, these options must appear immediately following
the last option.
- -tx
- Restrict output to processes whose controlling terminal
is x (which should be specified as printed by ps; for
example, t3 for /dev/tty3, tco for /dev/console, td0
for /dev/ttyd0, t? for processes with no terminal,
etc). This option must be the last one given.
num A process number may be given, in which case the output
is restricted to that process. This option must also
be last, and must appear with no white space between it
and the previous option.
Fields that are not common to all output formats:
- USER
- Name of the owner of the process.
- %CPU
- CPU use of the process; this is a decaying average
over up to a minute of previous (real) time.
Because 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%.
- NI
- Process scheduling increment (see getpriority(2)
and nice(3V)).
SIZE
- SZ
- The combined size of the data and stack segments
(in kilobytes)
- RSS
- Real memory (resident set) size of the process
(in kilobytes).
- LIM
- Soft limit on memory used, specified using a
call to getrlimit(2); if no limit has been
specified, this is shown as xx.
- %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/Os resulting from references by
the process to pages not loaded in core.
- UID
- Numeric user-ID of process owner.
- PPID
- Numeric ID of parent of process.
- SID
- Numeric ID of the session to which the process
belongs. SID = PGID = PID indicates a session
leader.
- PGID
- Numeric ID of the process group of the process.
- TPGID
- Numeric ID of the process group associated with
the terminal specified under TT (distinguished
process group, see termio(4)).
- CP
- Short-term CPU utilization factor (used in
scheduling).
- PRI
- Process priority (non-positive when in noninterruptible
wait).
- START
- Time the process was created if today, or the
date it was created if before today.
- WCHAN
- Event on which process is waiting (an address in
the system). A symbol is chosen that classifies
the address, unless numeric output is requested
(see the n flag). In this case, the address is
printed in hexadecimal.
- F
- Flags (in hex) associated with process as in
<sys/proc.h>:
- SLOAD
- 00000001 in core
- SSYS
- 00000002 swapper or pager process
- SLOCK
- 00000004 process being swapped out
- SSWAP
- 00000008 save area flag
- STRC
- 00000010 process is being traced
- SWTED
- 00000020 parent has been told that
this process stopped
- SULOCK
- 00000040 user can set lock in core
- SPAGE
- 00000080 process in page wait state
- SKEEP
- 00000100 another flag to prevent
swap out
- SOMASK
- 00000200 restore old mask after
taking signal
- SWEXIT
- 00000400 working on exiting
- SPHYSIO
- 00000800 doing physical I/O
- SVFORK
- 00001000 process resulted from
vfork()
- SVFDONE
- 00002000 another vfork flag
- SNOVM
- 00004000 no vm, parent in a vfork()
- SPAGI
- 00008000 init data space on demand,
from vnode
- SSEQL
- 00010000 user warned of sequential
vm behavior
- SUANOM
- 00020000 user warned of anomalous
vm behavior
- STIMO
- 00040000 timing out during sleep
- SORPHAN
- 00080000 process is orphaned
- STRACNG
- 00100000 process is tracing another
process
- SOWEUPC
- 00200000 process is being profiled
and has a pending count increment
- SSEL
- 00400000 selecting; wakeup/waiting
danger
- SFAVORD
- 02000000 favored treatment in
swapout and pageout
- SLKDONE
- 04000000 record-locking has been
done
- STRCSYS
- 08000000 tracing system calls
SNOCLDSTOP 10000000 SIGCHLD not sent when
child stops
- SEXECED
- 20000000 process has completed
an exec
- SRPC
- 40000000 sunview window locking
A process that has exited and has a parent, but has not yet
been waited for by the parent, is marked <defunct>; a process
that is blocked trying to exit is marked <exiting>;
otherwise, 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 environment variables LC_CTYPE, LANG, and LC_default
control the character classification throughout ps. On
entry to ps, these environment variables are checked in the
following order: LC_CTYPE, LANG, and LC_default. When a
valid value is found, remaining environment variables for
character classification are ignored. For example, a new
setting for LANG does not override the current valid character
classification rules of LC_CTYPE. When none of the
values is valid, the shell character classification defaults
to the POSIX.1 "C" locale.
- /vmunix
- system namelist
- /dev/kmem
- kernel memory
- /dev/drum
- swap device
- /vmcore
- core file
- /dev
- searched to find swap device and
terminal names
- /etc/psdatabase
- system namelist, device, and wait channel
information
kill(1), w(1), getpriority(2), getrlimit(2), wait(2V), vadvise(2),
nice(3V), termio(4), locale(5), pstat(8)
Things can change while ps is running; the picture it gives
is only a close approximation to the current state.
Table of Contents