File: oldps.1

package info (click to toggle)
procps 1%3A2.0.6-5
  • links: PTS
  • area: main
  • in suites: potato
  • size: 932 kB
  • ctags: 1,146
  • sloc: ansic: 10,494; makefile: 229; sh: 80
file content (356 lines) | stat: -rw-r--r-- 10,329 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
.\" This file Copyright 1992, 1997 Michael K. Johnson <johnsonm@redhat.com>
.\" and 1996 Charles L. Blake <cblake@bbn.com>
.\" It may be distributed under the GNU Public License, version 2, or
.\" any higher version.  See section COPYING of the GNU Public license
.\" for conditions under which this file may be redistributed.
.TH PS 1 "3 Sep 1997" "Cohesive Systems" "Linux User's Manual"
.SH NAME
ps \- report process status
.SH SYNOPSIS
ps [\fBlujsvmaxScewhrnu\fR] [\fBt\fIxx\fR] \
[\fBO\fR[\fB+\fR|\fB-\fR]\fIk1\fR[[\fB+\fR|\fB-\fR]\fIk2\fR...]] \
[\fIpids\fR]

there are also three long options:

.BR \-\-sort\fIX [ + | - ] \fIkey [,[ + | - ] \fIkey [, ... ]]

.B "\-\-help"

.B "\-\-version"

More long options are on the way...
.SH DESCRIPTION
.B "ps "
gives a snapshot of the current processes.  If you want a repetitive
update of this status, use
.BR top .
This man page documents the
.IR /proc -based
version of
.BR ps ,
or tries to.
.PP
.SH "COMMAND-LINE OPTIONS"
The command-line options for this version of
.B ps
are derived from the BSD version of
.BR ps ,
not the System V version.

The command-line arguments should \fBnot\fP be preceeded by a `\-' character,
because in the future, a `\-' will be used to indicate Unix98-standard
command-line arguments, while no `\-' will indicate the current
``extended BSD'' style of command line arguments.

For now, ps will give you a warning if you use a `\-' for a short option,
but it will still work.  If you have shell scripts which use BSD-style
arguments to ps, take heed of the warning and fix them, or else your
scripts will fail to function correctly at some point in the future.
If you want to turn off the warnings, set the
.B I_WANT_A_BROKEN_PS
environment variable. 

There are also some ``long options'' in GNU style; see below for those.
.PP
.PD 0
.TP 0.5i
.B "l "
long format
.TP 0.5i
.B "u "
user format: gives user name and start time
.TP 0.5i
.B "j "
jobs format: pgid sid
.TP 0.5i
.B "s"
signal format
.TP 0.5i
.B "v "
vm format
.TP 0.5i
.B "m "
displays memory info (combine with
.B p
flag to get number of pages).
.TP 0.5i
.B "f "
"forest" family tree format for command line
.TP 0.5i
.B "a "
show processes of other users too
.TP 0.5i
.B "x "
show processes without controlling terminal
.TP 0.5i
.B "S "
add child cpu time and page faults
.TP 0.5i
.B "c "
command name from task_struct
.TP 0.5i
.B "e "
show environment after command line and ` + '
.TP 0.5i
.B "w "
wide output: don't truncate command lines to fit on one line.
To be exact, every w that is specified will add another possible
line to the output. If the space isn't needed it isn't used. You
may up to 100
.BR w 's.
.TP 0.5i
.B "h "
no header
.TP 0.5i
.B "r "
running procs only
.TP 0.5i
.B "n "
numeric output for
.BR USER " and " WCHAN .
.PD 1
.TP 0.5i
.BI t xx
only procs with controlling tty \fIxx\fR; for \fIxx\fR you may use either the
name of a device file under "/dev" or that name with either
.IR tty " or " cu
sliced off.  This is the reverse heuristic that ps uses to print out the
abbreviated tty name in the \fBTT\fR field, e.g.
.BR "ps t1" .
.TP 0.5i
.BR O [ + | - ] \fIk1 [,[ + | - ] \fIk2 [, ... ]]
Order the process listing according to the multi-level sort specified by
the sequence of \fIshort\fR keys from \fBSORT KEYS\fR, \fIk1\fR, \fIk2\fR, ...
Default order specifications exist for each of the various formats of \fBps\fR.
These are over-ridden by a user specified ordering.  The `+' is quite optional,
merely re-iterating the default direction on a key.  `-' reverses direction only
on the key it precedes.  As with \fBt\fR and \fIpids\fR, the O option must be
the last option in a single command argument, but specifications in successive
arguments are catenated.
.TP 0.5i
.I pids
List only the specified processes; they are comma-delimited.  The 
list must be given immediately after the last option in a single command-line
argument, with no intervening space, e.g.
.BR "ps j1,4,5" .
Lists specified in subsequent arguments are catenated, e.g.
.B ps l 1,2 3,4 5 6
will list all of the processes 1-6 in long format.  If pids are given, they
are listed no matter what.  If a tty is given matching processes are listed
no matter what.  These two features override the 'a' and 'x' flags.
.SH "LONG COMMAND\-LINE OPTIONS"
These options are preceeded by a double\-hyphen.
.TP 0.5i
.BR \-\-sort\fIX [ + | - ] \fIkey [,[ + | - ] \fIkey [, ... ]]
Choose a \fImulti-letter key\fR from the \fBSORT KEYS\fR section. \fIX\fR may be
any convenient separator character.  To be GNU-ish use `='.  The `+' is really
optional since default direction is increasing numerical or lexicographic order.
E.g.:
.B ps jax --sort=uid,-ppid,+pid
.TP 0.5i
.B "\-\-help"
Get a help message that summarizes the usage and gives a list of
supported sort keys.  This list may be more up to date than this man
page.
.TP 0.5i
.B "\-\-version"
Display version and source of this program.
.SH "SORT KEYS"
Note that the values used in sorting are the internal values \fBps\fR uses and
\fInot\fR the `cooked' values used in some of the output format fields.  If
someone wants to volunteer to write special comparison functions for the cooked
values, ... ;-)

SHORT   LONG            DESCRIPTION
.PD 0
.TP 0.5i
c       cmd             simple name of executable
.TP 0.5i
C       cmdline         full command line
.TP 0.5i
f       flags           flags as in long format F field
.TP 0.5i
g       pgrp            process group ID
.TP 0.5i
G       tpgid           controlling tty process group ID
.TP 0.5i
j       cutime          cumulative user time
.TP 0.5i
J       cstime          cumulative system time
.TP 0.5i
k       utime           user time
.TP 0.5i
K       stime           system time
.TP 0.5i
m       min_flt         number of minor page faults
.TP 0.5i
M       maj_flt         number of major page faults
.TP 0.5i
n       cmin_flt        cumulative minor page faults
.TP 0.5i
N       cmaj_flt        cumulative major page faults
.TP 0.5i
o       session         session ID
.TP 0.5i
p       pid             process ID
.TP 0.5i
P       ppid            parent process ID
.TP 0.5i
r       rss             resident set size
.TP 0.5i
R       resident        resident pages
.TP 0.5i
s       size            memory size in kilobytes
.TP 0.5i
S       share           amount of shared pages
.TP 0.5i
t       tty             the minor device number of tty
.TP 0.5i
T       start_time      time process was started
.TP 0.5i
U       uid             user ID number
.TP 0.5i
u       user            user name
.TP 0.5i
v       vsize           total VM size in bytes
.TP 0.5i
y       priority        kernel scheduling priority
.PD 1
.SH "FIELD DESCRIPTIONS"
.TP 0.5i
.B "PRI "
This is the counter field in the task struct.  It is the time in
.B HZ
of the process's possible timeslice.
.TP 0.5i
.B "NI "
Standard unix nice value; a positive value means less cpu time.
.TP 0.5i
.B "SIZE "
Virtual image size; size of text+data+stack.
.TP 0.5i
.B "RSS "
Resident set size; kilobytes of program in memory.
.TP 0.5i
.B "WCHAN "
Name of the kernel function where the process is sleeping, with the
.RB ` sys_ '
stripped from the function name.  If
.I /etc/psdatabase
does not exist, it is just a hex number instead.
.TP 0.5i
.B "STAT "
Information about the status of the process.  The first field is
.B R
for runnable,
.B S
for sleeping,
.B D
for uninterruptible sleep,
.B T
for stopped or traced, or
.B Z
for a zombie process.  The second field contains
.B W
if the process has no resident pages.  The third field is
.B N
if the process has a positive nice value
.RB ( NI
field).
.TP 0.5i
.B "TT "
Controlling tty.
.TP 0.5i
.B "PAGEIN "
Number of major page faults (page faults that cause pages to be read
from disk, including pages read from the buffer cache).
.TP 0.5i
.B "TRS "
Text resident size.
.TP 0.5i
.B "SWAP "
Kilobytes (or pages if
.B p
is used) on swap device.
.TP 0.5i
.B "SHARE "
Shared memory.
.SH UPDATING
This
.BR proc -based
.B ps
works by reading the files in the
.B proc
filesystem, mounted on
.BR /proc .
This
.B ps
does not need to be suid
.B kmem
or have any privileges to run.
.I "Do not give this ps any special permissions."
.PP
You will need to put in place the appropriate System.map file
when you install a new kernel in order
to get meaningful information from the
.B WCHAN
field.  This should be done every time you compile a new kernel.  You should
also run 'ps' as root once and then any time the tty devices in the "/dev"
directory change.

As of procps-1.00, ps/top read System.map directly if it is available.  The
search path for kernel address-to-symbol resolution is:
.nf
            $PS_SYSTEM_MAP
            /boot/System.map-`uname -r`
            /boot/System.map
            /lib/modules/`uname -r`/System.map
            /etc/psdatabase
            /boot/psdatabase-`uname -r`
            /boot/psdatabase,
            /lib/modules/`uname -r`/psdatabase
.fi 
.PP
.SH NOTES
The member
.B used_math
of
.B task_struct
is not shown, since
.B crt0.s
checks to see if math is present.  This causes the math flag to be set
for all processes, and so it is worthless.
.PP
Programs swapped out to disk will be shown without command line
arguments, and unless the
.B c
option is given, in parentheses.
.PP
.B %CPU
shows the cputime/realtime percentage.  It will not add up to 100%
unless you are lucky.  It is time used divided by the time the process
has been running.
.PP
The
.B SIZE
and
.B RSS
fields don't count the page tables and the
.B task_struct
of a proc; this is at least 12k of memory that is always resident.
.B SIZE
is the virtual size of the proc (code+data+stack).
.SH AUTHOR
.B ps
was originally written by Branko Lankester <lankeste@fwi.uva.nl>. Michael K.
Johnson <johnsonm@redhat.com> re-wrote it significantly to use the proc
filesystem, changing a few things in the process.  Michael Shields
<mjshield@nyx.cs.du.edu> added the pid-list feature.  Charles
Blake <cblake@bbn.com> added multi-level sorting, the dirent-style library, the
device name-to-number mmaped database, the approximate binary search directly
on System.map, and many code and documentation cleanups.  David Mossberger-Tang
wrote the generic BFD support for psupdate.  Michael K. Johnson
<johnsonm@redhat.com> is the current maintainer.

Please send bug reports to <acahalan@cs.uml.edu>