BSD 4_3_Tahoe development
[unix-history] / usr / man / cat1 / ps.0
PS(1) UNIX Programmer's Manual PS(1)
N\bNA\bAM\bME\bE
ps - process status
S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
p\bps\bs [ a\bac\bce\beg\bgk\bkl\bln\bns\bst\btu\buv\bvw\bwx\bxU\bU#\b# ]
D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
_\bP_\bs prints information about processes. Normally, only your
processes are candidates to be printed by _\bp_\bs; specifying a\ba
causes other users' processes to be candidates to be
printed; specifying x\bx 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 COM-
MAND which is running. The state is given by a sequence of
letters, e.g. ``RWNA''. The first letter indicates the run-
nability 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 charac-
ters after these, if any, indicate additional state informa-
tion. 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 require-
ments and which is exceeding that limit shows >; such a pro-
cess 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. The final optional
letter indicates any special treatment of the process for
virtual memory replacement; the letters correspond to
options to the _\bv_\ba_\bd_\bv_\bi_\bs_\be(2) call; currently the possibilities
are A standing for VA_ANOM and S for VA_SEQL. An A typi-
cally represents a _\bl_\bi_\bs_\bp(1) in garbage collection, and S is
typical of large image processing programs which are using
virtual memory to sequentially address voluminous data.
Here are the options:
a\ba asks for information about all processes with terminals
(ordinarily only one's own processes are displayed).
c\bc prints 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
Printed 7/9/88 March 10, 1988 1
PS(1) UNIX Programmer's Manual PS(1)
information.
e\be Asks for the environment to be printed as well as the
arguments to the command.
g\bg Asks for all processes. Without this option, _\bp_\bs 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 termi-
nals.
k\bk causes the file /_\bv_\bm_\bc_\bo_\br_\be is used in place of /_\bd_\be_\bv/_\bk_\bm_\be_\bm
and /_\bd_\be_\bv/_\bm_\be_\bm. This is used for postmortem system
debugging.
l\bl asks for a long listing, with fields PPID, CP, PRI, NI,
ADDR, SIZE, RSS and WCHAN as described below.
n\bn Asks for numerical output. In a long listing, the
WCHAN field is printed numerically rather than symboli-
cally, or, in a user listing, the USER field is
replaced by a UID field.
s\bs Adds the size SSIZ of the kernel stack of each process
(for use by system maintainers) to the basic output
format.
t\bt_\bx restricts output to processes whose controlling tty is
_\bx (which should be specified as printed by _\bp_\bs, e.g. _\bt_\b3
for tty3, _\bt_\bc_\bo for console, _\bt_\bd_\b0 for ttyd0, _\bt? for
processes with no tty, _\bt for processes at the current
tty, etc). This option must be the last one given.
u\bu A user oriented output is produced. This includes
fields USER, %CPU, NICE, SIZE, and RSS as described
below.
v\bv 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\bw 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\bx asks even about processes with no terminal.
U\bU causes ps to update a private database where it keeps
system information. Thus ``ps U'' should be included
Printed 7/9/88 March 10, 1988 2
PS(1) UNIX Programmer's Manual PS(1)
in the /etc/rc file.
#\b# 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.
A second argument is taken to be the file containing the
system's namelist. Otherwise, /vmunix is used. A third
argument tells _\bp_\bs where to look for _\bc_\bo_\br_\be if the k\bk option is
given, instead of /vmcore. If a fourth argument is given,
it is taken to be the name of a swap file to use instead of
the default /dev/drum.
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 com-
puted 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 _\bs_\be_\bt_\b-
_\bp_\br_\bi_\bo_\br_\bi_\bt_\by(2))
SIZE 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
_\bs_\be_\bt_\br_\bl_\bi_\bm_\bi_\bt(2); if no limit has been specified then
shown as _\bx_\bx
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
CP short-term cpu utilization factor (used in
scheduling)
PRI process priority (non-positive when in non-
interruptible wait)
ADDR swap address of the process
WCHAN event on which process is waiting (an address in
the system). A symbol is chosen that classifies
the address, unless numerical output is requested
(see the n\bn flag). In this case, the initial part
of the address is trimmed off and is printed hexa-
decimally, e.g., 0x80004000 prints as 4000.
F flags associated with process as in <_\bs_\by_\bs/_\bp_\br_\bo_\bc._\bh>:
Printed 7/9/88 March 10, 1988 3
PS(1) UNIX Programmer's Manual PS(1)
SLOAD 000001 in core
SSYS 000002 swapper or pager process
SLOCK 000004 process being swapped out
SSWAP 000008 save area flag
STRC 000010 process is being traced
SWTED 000020 another tracing flag
SULOCK 000040 user settable lock in core
SPAGE 000080 process in page wait state
SKEEP 000100 another flag to prevent swap out
SDLYU 000200 delayed unlock of pages
SWEXIT 000400 working on exiting
SPHYSIO 000800 doing physical i/o (bio.c)
SVFORK 001000 process resulted from vfork()
SVFDONE 002000 another vfork flag
SNOVM 004000 no vm, parent in a vfork()
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>; _\bP_\bs 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.
F\bFI\bIL\bLE\bES\bS
/vmunix system namelist
/dev/kmem kernel memory
/dev/drum swap device
/vmcore core file
/dev searched to find swap device and tty names
/etc/psdatabase system namelist, device, and wait channel
information
S\bSE\bEE\bE A\bAL\bLS\bSO\bO
kill(1), w(1)
B\bBU\bUG\bGS\bS
Things can change while _\bp_\bs is running; the picture it gives
is only a close approximation to reality.
Printed 7/9/88 March 10, 1988 4