|
|
1.1 root 1: .\" Copyright (c) 1980 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)ps.1 6.5 (Berkeley) 3/10/88
6: .\"
7: .TH PS 1 "March 10, 1988"
8: .UC 4
9: .SH NAME
10: ps \- process status
11: .SH SYNOPSIS
12: .B ps
13: [
14: .B acegklnstuvwxU#
15: ]
16: .SH DESCRIPTION
17: .I Ps
18: prints information about processes.
19: Normally, only your processes are candidates to be printed by
20: .I ps;
21: specifying
22: .B a
23: causes other users' processes to be candidates to be printed;
24: specifying
25: .B x
26: includes processes without control terminals in the candidate pool.
27: .PP
28: All output formats include, for each process, the process id PID,
29: control terminal of the process TT, cpu time used by the process TIME
30: (this includes both user and system time), the state STAT of the process,
31: and an indication of the COMMAND which is running.
32: The state is given by a sequence of letters, e.g. ``RWNA''.
33: The first letter indicates the runnability of the process:
34: R for runnable processes,
35: T for stopped processes,
36: P for processes in page wait,
37: D for those in disk (or other short term) waits,
38: S for those sleeping for less than about 20 seconds,
39: and I for idle (sleeping longer than about 20 seconds)
40: processes.
41: Additional characters after these, if any,
42: indicate additional state information.
43: The letter W indicates that a process is swapped out,
44: showing W if it is, or a blank if it is loaded (in-core).
45: A process which has specified a soft limit on memory requirements
46: and which is exceeding that limit shows >; such a process is (necessarily)
47: not swapped.
48: An additional letter may indicate whether a process is running with altered
49: CPU scheduling priority (nice); if the process priority is reduced,
50: an N is shown, if the process priority has been artificially raised then
51: a `<' is shown.
52: The final optional letter
53: indicates any special treatment of the process for virtual
54: memory replacement; the letters correspond to options to the
55: .IR vadvise (2)
56: call; currently the possibilities are A standing for VA_ANOM and
57: S for VA_SEQL.
58: An A typically represents a
59: .IR lisp (1)
60: in garbage collection, and S is typical of large image processing programs
61: which are using virtual memory to sequentially address voluminous data.
62: .PP
63: Here are the options:
64: .TP 5
65: .B a
66: asks for information about all processes with terminals (ordinarily
67: only one's own processes are displayed).
68: .TP 5
69: .B c
70: prints the command name, as stored internally in the system for purposes
71: of accounting, rather than the command arguments, which are kept
72: in the process' address space. This is more reliable, if less informative,
73: since the process is free to destroy the latter information.
74: .TP 5
75: .B e
76: Asks for the environment to be printed as well as the arguments to the command.
77: .TP 5
78: .B g
79: Asks for all processes.
80: Without this option,
81: .I ps
82: only prints ``interesting'' processes.
83: Processes are deemed to be uninteresting if they are process group leaders.
84: This normally eliminates top-level command interpreters and processes
85: waiting for users to login on free terminals.
86: .TP 5
87: .B k
88: causes the file
89: .I /vmcore
90: is used in place of
91: .IR /dev/kmem " and " /dev/mem.
92: This is used for
93: postmortem system debugging.
94: .TP 5
95: .B l
96: asks for a long listing, with fields PPID, CP, PRI, NI, ADDR, SIZE, RSS and
97: WCHAN as described below.
98: .TP 5
99: .B n
100: Asks for numerical output.
101: In a long listing, the WCHAN field is printed numerically rather than
102: symbolically, or, in a user listing, the USER field is replaced by a
103: UID field.
104: .TP 5
105: .B s
106: Adds the size SSIZ of the kernel stack of each process (for use by system
107: maintainers) to the basic output format.
108: .TP 5
109: \fBt\fIx\fR
110: restricts output to processes whose controlling tty is \fIx\fR
111: (which should be specified as printed by
112: .I ps,
113: e.g.
114: .I t3
115: for tty3,
116: .I tco
117: for console,
118: .I td0
119: for ttyd0,
120: .I t?
121: for processes with no tty,
122: .I t
123: for processes at the current tty,
124: etc).
125: This option must be the last one given.
126: .TP 5
127: .B u
128: A user oriented output is produced.
129: This includes fields USER, %CPU, NICE, SIZE, and RSS as described below.
130: .TP 5
131: .B v
132: A version of the output containing virtual memory statistics is output.
133: This includes fields RE, SL, PAGEIN, SIZE, RSS, LIM, TSIZ, TRS, %CPU
134: and %MEM, described below.
135: .TP 5
136: .B w
137: Use a wide output format (132 columns rather than 80); if repeated,
138: e.g. ww, use arbitrarily wide output.
139: This information is used to decide how much of long commands to print.
140: .TP 5
141: .B x
142: asks even about processes with no terminal.
143: .TP
144: .B U
145: causes ps to update a private database where it keeps system
146: information. Thus ``ps U'' should be included in the /etc/rc file.
147: .TP 5
148: .B #
149: A process number may be given,
150: (indicated here by #),
151: in which case the output
152: is restricted to that process.
153: This option must also be last.
154: .PP
155: A second argument is taken
156: to be the file containing the system's
157: namelist. Otherwise, /vmunix is used.
158: A third argument tells
159: .I ps
160: where to look for
161: .I core
162: if the
163: .B k
164: option is given, instead of /vmcore.
165: If a fourth argument is given, it
166: is taken to be the name of a swap file to use instead of
167: the default /dev/drum.
168: .PP
169: Fields which are not common to all output formats:
170: .PD 0
171: .IP USER 10
172: name of the owner of the process
173: .IP %CPU 10
174: cpu utilization of the process; this is a decaying average over up to
175: a minute of previous (real) time. Since the time base over which this
176: is computed varies (since processes may be very young) it is possible
177: for the sum of all %CPU fields to exceed 100%.
178: .IP NICE 10
179: (or NI) process scheduling increment (see
180: .IR setpriority (2))
181: .IP SIZE 10
182: virtual size of the process (in 1024 byte units)
183: .IP RSS 10
184: real memory (resident set) size of the process (in 1024 byte units)
185: .IP LIM 10
186: soft limit on memory used, specified via a call to
187: .IR setrlimit (2);
188: if no limit has been specified then shown as \fIxx\fR
189: .IP TSIZ 10
190: size of text (shared program) image
191: .IP TRS 10
192: size of resident (real memory) set of text
193: .IP %MEM 10
194: percentage of real memory used by this process.
195: .IP RE 10
196: residency time of the process (seconds in core)
197: .IP SL 10
198: sleep time of the process (seconds blocked)
199: .IP PAGEIN 10
200: number of disk i/o's resulting from references by the process
201: to pages not loaded in core.
202: .IP UID 10
203: numerical user-id of process owner
204: .IP PPID 10
205: numerical id of parent of process
206: .IP CP 10
207: short-term cpu utilization factor (used in scheduling)
208: .IP PRI 10
209: process priority (non-positive when in non-interruptible wait)
210: .IP ADDR 10
211: swap address of the process
212: .IP WCHAN 10
213: event on which process is waiting (an address in the system).
214: A symbol is chosen that classifies the address, unless numerical
215: output is requested (see the
216: .B n
217: flag).
218: In this case, the initial part of the address is
219: trimmed off and is printed hexadecimally, e.g., 0x80004000 prints as 4000.
220: .sp
221: .IP F 10
222: flags associated with process as in
223: .RI < sys/proc.h >:
224: .br
225: .PP
226: .sp
227: .nf
228: .ta 6n 18n 26n
229: SLOAD 000001 in core
230: SSYS 000002 swapper or pager process
231: SLOCK 000004 process being swapped out
232: SSWAP 000008 save area flag
233: STRC 000010 process is being traced
234: SWTED 000020 another tracing flag
235: SULOCK 000040 user settable lock in core
236: SPAGE 000080 process in page wait state
237: SKEEP 000100 another flag to prevent swap out
238: SDLYU 000200 delayed unlock of pages
239: SWEXIT 000400 working on exiting
240: SPHYSIO 000800 doing physical i/o (bio.c)
241: SVFORK 001000 process resulted from vfork()
242: SVFDONE 002000 another vfork flag
243: SNOVM 004000 no vm, parent in a vfork()
244: SPAGI 008000 init data space on demand from inode
245: SANOM 010000 system detected anomalous vm behavior
246: SUANOM 020000 user warned of anomalous vm behavior
247: STIMO 040000 timing out during sleep
248: SDETACH 080000 detached inherited by init
249: SOUSIG 100000 using old signal mechanism
250: .fi
251: .PD
252: .PP
253: A process that has exited and has a parent that has not
254: yet waited for the process is marked <defunct>; a process
255: which is blocked trying to exit is marked <exiting>;
256: .I Ps
257: makes an educated guess as to the file name
258: and arguments given when the process was created
259: by examining memory or the swap area.
260: The method is inherently somewhat unreliable and in any event
261: a process is entitled to destroy this information,
262: so the names cannot be counted on too much.
263: .SH FILES
264: .ta \w'/etc/psdatabase 'u
265: /vmunix system namelist
266: .br
267: /dev/kmem kernel memory
268: .br
269: /dev/drum swap device
270: .br
271: /vmcore core file
272: .br
273: /dev searched to find swap device and tty names
274: .br
275: /etc/psdatabase system namelist, device, and wait channel information
276: .SH "SEE ALSO"
277: kill(1), w(1)
278: .SH BUGS
279: Things can change while
280: .I ps
281: is running; the picture it gives is only a close
282: approximation to reality.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.