Remove advertising header from man pages.
[dragonfly.git] / bin / ps / ps.1
1 .\" Copyright (c) 1980, 1990, 1991, 1993, 1994
2 .\"     The Regents of the University of California.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 4. Neither the name of the University nor the names of its contributors
13 .\"    may be used to endorse or promote products derived from this software
14 .\"    without specific prior written permission.
15 .\"
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 .\" SUCH DAMAGE.
27 .\"
28 .\"     @(#)ps.1        8.3 (Berkeley) 4/18/94
29 .\" $FreeBSD: src/bin/ps/ps.1,v 1.24.2.7 2002/06/20 22:43:33 charnier Exp $
30 .\" $DragonFly: src/bin/ps/ps.1,v 1.20 2008/09/02 11:50:45 matthias Exp $
31 .\"
32 .Dd September 2, 2008
33 .Dt PS 1
34 .Os
35 .Sh NAME
36 .Nm ps
37 .Nd process status
38 .Sh SYNOPSIS
39 .Nm
40 .Op Fl aCcefHhjlmrRSTuvwx
41 .Op Fl M Ar core
42 .Op Fl N Ar system
43 .Op Fl O Ar fmt
44 .Op Fl o Ar fmt
45 .Op Fl p Ar pid
46 .Op Fl t Ar tty
47 .Op Fl U Ar username
48 .Nm
49 .Op Fl L
50 .Sh DESCRIPTION
51 The
52 .Nm
53 utility
54 displays a header line followed by lines containing information about your
55 processes that have controlling terminals.
56 This information is sorted by controlling terminal, then by process ID.
57 .Pp
58 The information displayed is selected based on a set of keywords (see the
59 .Fl L
60 .Fl O
61 and
62 .Fl o
63 options).
64 The default output format includes, for each process, the process' ID,
65 controlling terminal, CPU time (including both user and system time),
66 state, and associated command.
67 .Pp
68 The process file system (see
69 .Xr procfs 5 )
70 should be mounted when
71 .Nm
72 is executed, otherwise not all information will be available.
73 .Pp
74 The options are as follows:
75 .Bl -tag -width indent
76 .It Fl a
77 Display information about other users' processes as well as your own.
78 This can be disabled by setting the
79 .Va security.ps_showallprocs
80 sysctl to zero.
81 .It Fl c
82 Change the ``command'' column output to just contain the executable name,
83 rather than the full command line.
84 .It Fl C
85 Change the way the CPU percentage is calculated by using a ``raw''
86 CPU calculation that ignores ``resident'' time (this normally has
87 no effect).
88 .It Fl e
89 Display the environment as well.
90 .It Fl f
91 Show commandline and environment information about swapped out processes.
92 This option is honored only if the uid of the user is 0.
93 .It Fl H
94 Print one line per lightweight process (LWP) instead of one line per process.
95 When this option is set and the
96 .Fl o
97 option is not set, the
98 .Cm tid
99 column is inserted in the output format after the
100 .Cm pid
101 one.
102 .It Fl h
103 Repeat the information header as often as necessary to guarantee one
104 header per page of information.
105 .It Fl j
106 Print information associated with the following keywords:
107 .Cm user , pid , ppid , pgid , sess , jobc , state , tt , time ,
108 and
109 .Cm command .
110 .It Fl L
111 List the set of available keywords.
112 .It Fl l
113 Display information associated with the following keywords:
114 .Cm uid , pid , ppid , cpu , pri , nice , vsz , rss , wchan , state ,
115 .Cm tt , time ,
116 and
117 .Cm command .
118 .It Fl M
119 Extract values associated with the name list from the specified core
120 instead of the default
121 .Pa /dev/kmem .
122 .It Fl m
123 Sort by memory usage, instead of by process ID.
124 .It Fl N
125 Extract the name list from the specified system instead of the default
126 .Pa /boot/kernel .
127 .It Fl O
128 Add the information associated with the space or comma separated list
129 of keywords specified, after the process ID,
130 in the default information
131 display.
132 Keywords may be appended with an equals (``='') sign and a string.
133 This causes the printed header to use the specified string instead of
134 the standard header.
135 .It Fl o
136 Display information associated with the space or comma separated list
137 of keywords specified.
138 Keywords may be appended with an equals (``='') sign and a string.
139 This causes the printed header to use the specified string instead of
140 the standard header.
141 .It Fl p
142 Display information associated with the specified process ID.
143 .It Fl r
144 Sort by current CPU usage, instead of by process ID.
145 .It Fl R
146 Subsort by parent/child chain.  This very useful option makes
147 the parent/child associations clear and understandable.
148 .It Fl S
149 Change the way the process time is calculated by summing all exited
150 children to their parent process.
151 .It Fl T
152 Display information about processes attached to the device associated
153 with the standard input.
154 .It Fl t
155 Display information about processes attached to the specified terminal
156 device.
157 .It Fl U
158 Display the processes belonging to the specified
159 .Ar username .
160 .It Fl u
161 Display information associated with the following keywords:
162 .Cm user , pid, %cpu , %mem , vsz , rss , tt , state , start , time ,
163 and
164 .Cm command .
165 The
166 .Fl u
167 option implies the
168 .Fl r
169 option.
170 .It Fl v
171 Display information associated with the following keywords:
172 .Cm pid , state , time , sl , re , pagein , vsz , rss , lim , tsiz ,
173 .Cm %cpu , %mem
174 and
175 .Cm command .
176 The
177 .Fl v
178 option implies the
179 .Fl m
180 option.
181 .It Fl w
182 Use 132 columns to display information, instead of the default which
183 is your window size.
184 If the
185 .Fl w
186 option is specified more than once,
187 .Nm
188 will use as many columns as necessary without regard for your window size.
189 .It Fl x
190 Display information about processes without controlling terminals.
191 .El
192 .Pp
193 A complete list of the available keywords are listed below.
194 Some of these keywords are further specified as follows:
195 .Bl -tag -width ".Cm lstart"
196 .It Cm %cpu
197 The CPU utilization of the process; this is a decaying average over up to
198 a minute of previous (real) time.
199 Since the time base over which this is computed varies (since processes may
200 be very young) it is possible for the sum of all
201 .Cm %cpu
202 fields to exceed 100%.
203 .It Cm %mem
204 The percentage of real memory used by this process.
205 .It Cm flags
206 The flags associated with the process as in
207 the include file
208 .In sys/proc.h .
209 .It Cm lim
210 The soft limit on memory used, specified via a call to
211 .Xr setrlimit 2 .
212 .It Cm lstart
213 The exact time the command started, using the ``%c'' format described in
214 .Xr strftime 3 .
215 .It Cm nice
216 The process scheduling increment (see
217 .Xr setpriority 2 ) .
218 .It Cm rss
219 the real memory (resident set) size of the process (in 1024 byte units).
220 .It Cm start
221 The time the command started.
222 If the command started less than 24 hours ago, the start time is
223 displayed using the ``%l:ps.1p'' format described in
224 .Xr strftime 3 .
225 If the command started less than 7 days ago, the start time is
226 displayed using the ``%a6.15p'' format.
227 Otherwise, the start time is displayed using the ``%e%b%y'' format.
228 .It Cm state
229 The state is given by a sequence of letters, for example,
230 .Dq Li RWNA .
231 The first letter indicates the run state of the process:
232 .Pp
233 .Bl -tag -width indent -compact
234 .It Li B
235 Marks a blocked kernel thread.
236 .It Li D
237 Marks a process in disk (or other short term, uninterruptible) wait.
238 .It Li I
239 Marks a process that is idle (sleeping for longer than about 20 seconds).
240 .It Li J
241 Marks a process which is in
242 .Xr jail 2 .
243 The hostname of the prison can be found in
244 .Pa /proc/ Ns Ao Ar pid Ac Ns Pa /status .
245 .It Li R
246 Marks a runnable process and is followed by the CPU number.
247 .It Li S
248 Marks a process that is sleeping for less than about 20 seconds.
249 .It Li T
250 Marks a stopped process.
251 .It Li Z
252 Marks a dead process (a
253 .Dq zombie ) .
254 .El
255 .Pp
256 Additional characters after these, if any, indicate additional state
257 information:
258 .Pp
259 .Bl -tag -width indent -compact
260 .It Li +
261 The process is in the foreground process group of its control terminal.
262 .It Li <
263 The process has raised CPU scheduling priority.
264 .It Li >
265 The process has specified a soft limit on memory requirements and is
266 currently exceeding that limit; such a process is (necessarily) not
267 swapped.
268 .It Li A
269 the process has asked for random page replacement
270 .Pf ( Dv MADV_RANDOM ,
271 from
272 .Xr madvise 2 ,
273 for example,
274 .Xr lisp 1
275 in a garbage collect).
276 .It Li E
277 The process is trying to exit.
278 .It Li L
279 The process has pages locked in core (for example, for raw
280 .Tn I/O ) .
281 .It Li M
282 The process or thread is
283 .Em not
284 holding the MP lock (the Big Giant Lock).
285 .It Li N
286 The process has reduced CPU scheduling priority (see
287 .Xr setpriority 2 ) .
288 .It Li S
289 The process has asked for FIFO page replacement
290 .Pf ( Dv MADV_SEQUENTIAL ,
291 from
292 .Xr madvise 2 ,
293 for example, a large image processing program using virtual memory to
294 sequentially address voluminous data).
295 .It Li s
296 The process is a session leader.
297 .It Li V
298 The process is suspended during a
299 .Xr vfork 2 .
300 .It Li W
301 The process is swapped out.
302 .It Li X
303 The process is being traced or debugged.
304 .El
305 .It Cm tt
306 An abbreviation for the pathname of the controlling terminal, if any.
307 The abbreviation consists of the three letters following
308 .Pa /dev/tty ,
309 or, for the console, ``con''.
310 This is followed by a ``-'' if the process can no longer reach that
311 controlling terminal (i.e., it has been revoked).
312 .It Cm wchan
313 The event (an address in the system) on which a process waits.
314 When printed numerically, the initial part of the address is
315 trimmed off and the result is printed in hex, for example, 0x80324000 prints
316 as 324000.  Note that blocked threads often only have ascii wchan's.
317 .El
318 .Pp
319 When printing using the
320 .Cm command
321 keyword, a process that has exited and
322 has a parent that has not yet waited for the process (in other words, a zombie)
323 is listed as ``<defunct>'', and a process which is blocked while trying
324 to exit is listed as ``<exiting>''.
325 The
326 .Nm
327 utility
328 makes an educated guess as to the file name and arguments given when the
329 process was created by examining memory or the swap area.
330 The method is inherently somewhat unreliable and in any event a process
331 is entitled to destroy this information, so the names cannot be depended
332 on too much.
333 The
334 .Cm ucomm
335 (accounting) keyword can, however, be depended on.
336 .Sh KEYWORDS
337 The following is a complete list of the available keywords and their
338 meanings.
339 Several of them have aliases (keywords which are synonyms).
340 .Pp
341 .Bl -tag -width ".Cm sigignore" -compact
342 .It Cm %cpu
343 percentage CPU usage (alias
344 .Cm pcpu )
345 .It Cm %mem
346 percentage memory usage (alias
347 .Cm pmem )
348 .It Cm acflag
349 accounting flag (alias
350 .Cm acflg )
351 .It Cm batch
352 batchness of the process (higher numbers mean less interactivity)
353 .It Cm command
354 command and arguments
355 .It Cm cpu
356 short-term CPU usage factor (for scheduling)
357 .It Cm f
358 the process flags, in hexadecimal (alias
359 .Cm flags )
360 .It Cm inblk
361 total blocks read (alias
362 .Cm inblock )
363 .It Cm jail
364 jail ID
365 .It Cm jobc
366 job control count
367 .It Cm ktrace
368 tracing flags
369 .\" .It Cm ktracep
370 .\" tracing vnode
371 .It Cm lastcpu
372 CPU ID the process was last scheduled on
373 .It Cm lim
374 memoryuse limit
375 .It Cm login
376 login name of user who started the process (alias
377 .Cm logname )
378 .It Cm lstart
379 time started
380 .It Cm majflt
381 total page faults
382 .It Cm minflt
383 total page reclaims
384 .It Cm msgrcv
385 total messages received (reads from pipes/sockets)
386 .It Cm msgsnd
387 total messages sent (writes on pipes/sockets)
388 .It Cm nice
389 nice value (alias
390 .Cm ni )
391 .It Cm nivcsw
392 total involuntary context switches
393 .It Cm nlwp
394 number of lightweight processes
395 .It Cm nsigs
396 total signals taken (alias
397 .Cm nsignals )
398 .It Cm nswap
399 total swaps in/out
400 .It Cm nvcsw
401 total voluntary context switches
402 .It Cm nwchan
403 wait channel (as an address)
404 .It Cm oublk
405 total blocks written (alias
406 .Cm oublock )
407 .It Cm p_ru
408 resource usage (valid only for zombie)
409 .It Cm paddr
410 swap address
411 .It Cm pagein
412 pageins (same as
413 .Cm majflt )
414 .It Cm pgid
415 process group number
416 .It Cm pid
417 process ID
418 .It Cm ppid
419 parent process ID
420 .It Cm pri
421 scheduling priority (lower == better)
422 .It Cm re
423 core residency time (in seconds; 127 = infinity)
424 .It Cm rgid
425 real group ID
426 .\" .It Cm rlink
427 .\" reverse link on run queue, or 0
428 .It Cm rss
429 resident set size
430 .It Cm rsz
431 resident set size + (text size / text use count) (alias
432 .Cm rssize )
433 .It Cm rtprio
434 realtime priority (101 = not a realtime process)
435 .It Cm ruid
436 real user ID
437 .It Cm ruser
438 user name (from ruid)
439 .It Cm sess
440 session pointer
441 .It Cm sig
442 pending signals (alias
443 .Cm pending )
444 .It Cm sigcatch
445 caught signals (alias
446 .Cm caught )
447 .It Cm sigignore
448 ignored signals (alias
449 .Cm ignored )
450 .It Cm sigmask
451 blocked signals (alias
452 .Cm blocked )
453 .It Cm sl
454 sleep time (in seconds; 127 = infinity)
455 .It Cm start
456 time started
457 .It Cm state
458 symbolic process state (alias
459 .Cm stat )
460 .It Cm svgid
461 saved gid from a setgid executable
462 .It Cm svuid
463 saved uid from a setuid executable
464 .It Cm tdev
465 control terminal device number
466 .It Cm tdpri
467 LWKT thread priority (0-31, 31 highest), and critical section count
468 .It Cm tid
469 thread ID (aka lightweight process ID)
470 .It Cm time
471 accumulated CPU time, user + system (alias
472 .Cm cputime )
473 .It Cm tpgid
474 control terminal process group ID
475 .\".It Cm trss
476 .\"text resident set size (in Kbytes)
477 .It Cm tsess
478 control terminal session pointer
479 .It Cm tsig
480 pending thread signals
481 .It Cm tsiz
482 text size (in Kbytes)
483 .It Cm tt
484 control terminal name (two letter abbreviation)
485 .It Cm tty
486 full name of control terminal
487 .It Cm ucomm
488 name to be used for accounting (alias
489 .Cm comm )
490 .It Cm uid
491 effective user ID
492 .It Cm user
493 user name (from uid)
494 .It Cm vsz
495 virtual size in Kbytes (alias
496 .Cm vsize )
497 .It Cm wchan
498 wait channel (as a symbolic name)
499 .It Cm xstat
500 exit or stop status (valid only for stopped or zombie process)
501 .El
502 .Sh FILES
503 .Bl -tag -width /var/db/kvm_kernel.db -compact
504 .It Pa /dev/kmem
505 default kernel memory
506 .It Pa /var/run/dev.db
507 /dev name database
508 .It Pa /var/db/kvm_kernel.db
509 system namelist database
510 .It Pa /boot/kernel
511 default system namelist
512 .It Pa /proc
513 the mount point of
514 .Xr procfs 5
515 .El
516 .Sh SEE ALSO
517 .Xr kill 1 ,
518 .Xr w 1 ,
519 .Xr kvm 3 ,
520 .Xr strftime 3 ,
521 .Xr procfs 5 ,
522 .Xr pstat 8 ,
523 .Xr sysctl 8
524 .Sh HISTORY
525 The
526 .Nm
527 command appeared in
528 .At v4 .
529 .Sh BUGS
530 Since
531 .Nm
532 cannot run faster than the system and is run as any other scheduled
533 process, the information it displays can never be exact.