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