V8/usr/man/man8/oops.8

Compare this file to the similar file:
Show the results in this format:

.TH OOPS 8
.SH NAME
oops \- process status
.SH SYNOPSIS
.B oops
[
.B acegklstuvwx#
] [ core ] [ swap ] [ namelist ]
.SH DESCRIPTION
.I Oops
prints information about processes.
Normally, only the invoker's processes are candidates to be printed by
.IR oops .
Specifying
.B a
causes other user's processes to be candidates to be printed;
specifying
.B x
includes processes without control terminals in the candidate pool.
.PP
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 four letters, e.g. ``RWNA''.
The first letter indicates the runnability of the process:
R for a runnable process,
T for a stopped process,
P for a process in page wait,
D for one in disk (or other short term) wait,
S for one sleeping for less than about 20 seconds,
and I for an idle (sleeping longer than about 20 seconds)
process.
The second letter is W if the process is swapped out,
blank if it is resident in memory.
The third letter is a blank
if the process is running with normal scheduling priority,
N if the priority is reduced (nice),
< if the priority is raised.
The final letter is an A
if special paging behaviour has been requested.
.PP
Here are the options:
.TP 5
.B a
asks for information about all processes with terminals (ordinarily
only one's own processes are displayed).
.TP 5
.B c
causes the system's internal idea of the command name to be used,
rather than the command arguments in the process' address space.
This is more reliable, if less informative,
since the process is free to destroy the latter information.
.TP 5
.B e
asks for the environment
.RI ( environ (7))
to be printed.
.TP 5
.B g
includes process group leaders
(usually shells)
which are normally excluded.
.TP 5
.B k
causes the file
.I /vmcore
is used in place of
.IR /dev/kmem " and " /dev/mem.
This is used for
postmortem system debugging.
.TP 5
.B l
asks for a long listing, with fields PPID, CP, PRI, NI, ADDR, SIZE, RSS and
WCHAN as described below.
.TP 5
.B s
adds the size SSIZ of the kernel stack of each process (for use by system
maintainers) to the basic output format.
.TP 5
\fBt\fIx\fR
restricts output to processes whose controlling tty is \fIx\fR
(which should be specified as printed by
.I oops,
e.g.
.I t3
for tty3,
.I tco
for console,
.I td0
for ttyd0,
.I t?
for processes with no tty,
etc).
This option must be the last one given.
.TP 5
.B u
allegedly user oriented output is produced.
This includes fields USER, %CPU, NICE, SIZE, and RSS as described below.
.TP 5
.B v
virtual memory statistics;
includes fields RE, SL, PAGEIN, SIZE, RSS, SRS, TSIZ, TRS, %CPU
and %MEM, described below.
.TP 5
.B w
use a wide output format (132 columns rather than 80); if repeated,
use arbitrarily wide output.
This information is used to decide how much of long argument lists to print.
.TP 5
.B x
asks about even processes with no terminal.
.TP 5
.B #
A process number may be given,
in which case the output
is restricted to that process.
This option must also be last.
.PP
A second argument tells
.I oops
where to look for
.I core
if the
.B k
option is given, instead of
.IR /vmcore .
A third argument is the name of a swap file to use instead of
the default
.IR /dev/drum .
If a fourth argument is given,
it is taken to be the file containing the system's namelist.
Otherwise,
.I /unix
is used.
.PP
Fields which are not common to all output formats:
.PD 0
.IP USER 10
the owner of the process
.IP %CPU 10
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%.
.IP NICE 10
(or NI) process scheduling increment (see
.IR nice (2))
.IP SIZE 10
virtual size of the process (in 1024 byte units)
.IP RSS 10
real memory (resident set) size of the process (in 1024 byte units)
.IP SRS 10
number of real memory pages (RSS) if and when swapped
.IP TSIZ 10
size of text (shared program) image
.IP TRS 10
size of resident (real memory) set of text
.IP %MEM 10
percentage of real memory used by this process.
.IP RE 10
residency time of the process (seconds in core)
.IP SL 10
sleep time of the process (seconds blocked)
.IP PAGEIN 10
number of disk i/o's resulting from references by the process
to pages not loaded in core.
.IP UID 10
numerical user-id of process owner
.IP PPID 10
numerical id of parent of process
.IP CP 10
short-term cpu utilization factor (used in scheduling)
.IP PRI 10
process priority (non-positive when in non-interruptible wait)
.IP ADDR 10
swap address of the process
.IP WCHAN 10
event on which process is waiting (an address in the system), with
the initial part of the address trimmed off; e.g. 0x80004000 prints
as 4000.
.sp
.IP F 10
flags associated with process as in /usr/include/sys/proc.h:
.br
.PP
.sp
.nf
.ta 6n 18n 26n
	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)
	SPAGI	008000	init data space on demand, from inode
	SSEQL	010000	user warned of sequential vm behavior
	SUANOM	020000	user warned of anomalous vm behavior
	STIMO	040000	timing out during sleep
	SDETACH	080000	detached inherited by init
	SNUSIG	100000	using new signal mechanism
.fi
.PD
.PP
A process that has exited and has a parent, but has not
yet been waited for by the parent is marked <defunct>; a process
which is blocked trying to exit is marked <exiting>.
.I Oops
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.
.SH FILES
.ta \w'/usr/sys/core 'u
/unix	system namelist
.br
/dev/kmem	kernel memory
.br
/dev/drum	swap device
.br
/vmcore	core file
.br
/dev	searched to find swap device and tty names
.SH "SEE ALSO"
kill(1), ps(1), pstat(8)
.SH BUGS
Things can change while
.I oops
is running; the picture it gives is only a close
approximation to reality.
.br
.I Oops
duplicates
.IR ps (1);
it is useful mainly for examining kernel crash dumps,
or when
.I /proc
is not mounted.