]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - bin/ps/ps.1
Merge llvm-project release/18.x llvmorg-18-init-18361-g22683463740e
[FreeBSD/FreeBSD.git] / bin / ps / ps.1
1 .\"-
2 .\" Copyright (c) 1980, 1990, 1991, 1993, 1994
3 .\"     The Regents of the University of California.  All rights reserved.
4 .\"
5 .\" Redistribution and use in source and binary forms, with or without
6 .\" modification, are permitted provided that the following conditions
7 .\" are met:
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\"    notice, this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\"    notice, this list of conditions and the following disclaimer in the
12 .\"    documentation and/or other materials provided with the distribution.
13 .\" 3. Neither the name of the University nor the names of its contributors
14 .\"    may be used to endorse or promote products derived from this software
15 .\"    without specific prior written permission.
16 .\"
17 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
18 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
21 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 .\" SUCH DAMAGE.
28 .\"
29 .Dd November 11, 2023
30 .Dt PS 1
31 .Os
32 .Sh NAME
33 .Nm ps
34 .Nd process status
35 .Sh SYNOPSIS
36 .Nm
37 .Op Fl -libxo
38 .Op Fl aCcdefHhjlmrSTuvwXxZ
39 .Op Fl O Ar fmt | Fl o Ar fmt
40 .Op Fl D Ar up | down | both
41 .Op Fl G Ar gid Ns Op , Ns Ar gid Ns Ar ...
42 .Op Fl J Ar jid Ns Op , Ns Ar jid Ns Ar ...
43 .Op Fl M Ar core
44 .Op Fl N Ar system
45 .Op Fl p Ar pid Ns Op , Ns Ar pid Ns Ar ...
46 .Op Fl t Ar tty Ns Op , Ns Ar tty Ns Ar ...
47 .Op Fl U Ar user Ns Op , Ns Ar user Ns Ar ...
48 .Nm
49 .Op Fl -libxo
50 .Fl L
51 .Sh DESCRIPTION
52 The
53 .Nm
54 utility
55 displays a header line, followed by lines containing information about
56 all of your
57 processes that have controlling terminals.
58 If the
59 .Fl x
60 options is specified,
61 .Nm
62 will also display processes that do not have controlling terminals.
63 .Pp
64 A different set of processes can be selected for display by using any
65 combination of the
66 .Fl a , D , G , J , p , T , t ,
67 and
68 .Fl U
69 options.
70 If more than one of these options are given, then
71 .Nm
72 will select all processes which are matched by at least one of the
73 given options.
74 .Pp
75 For the processes which have been selected for display,
76 .Nm
77 will usually display one line per process.
78 The
79 .Fl H
80 option may result in multiple output lines (one line per thread) for
81 some processes.
82 By default all of these output lines are sorted first by controlling
83 terminal, then by process ID.
84 The
85 .Fl m , r , u ,
86 and
87 .Fl v
88 options will change the sort order.
89 If more than one sorting option was given, then the selected processes
90 will be sorted by the last sorting option which was specified.
91 .Pp
92 For the processes which have been selected for display, the information
93 to display is selected based on a set of keywords (see the
94 .Fl L , O ,
95 and
96 .Fl o
97 options).
98 The default output format includes, for each process, the process' ID,
99 controlling terminal, state, CPU time (including both user and system time)
100 and associated command.
101 .Pp
102 If the
103 .Nm
104 process is associated with a terminal, the default output width is that of the
105 terminal; otherwise the output width is unlimited.
106 See also the
107 .Fl w
108 option.
109 .Pp
110 The options are as follows:
111 .Bl -tag -width indent
112 .It Fl -libxo
113 Generate output via
114 .Xr libxo 3
115 in a selection of different human and machine readable formats.
116 See
117 .Xr xo_parse_args 3
118 for details on command line arguments.
119 .It Fl a
120 Display information about other users' processes as well as your own.
121 If the
122 .Va security.bsd.see_other_uids
123 sysctl is set to zero, this option is honored only if the UID of the user is 0.
124 .It Fl c
125 Change the
126 .Dq command
127 column output to just contain the executable name,
128 rather than the full command line.
129 .It Fl C
130 Change the way the CPU percentage is calculated by using a
131 .Dq raw
132 CPU calculation that ignores
133 .Dq resident
134 time (this normally has
135 no effect).
136 .It Fl d
137 Arrange processes into descendancy order and prefix each command with
138 indentation text showing sibling and parent/child relationships as a tree.
139 If either of the
140 .Fl m
141 and
142 .Fl r
143 options are also used, they control how sibling processes are sorted
144 relative to each other.
145 Note that this option has no effect if the
146 .Dq command
147 column is not the last column displayed.
148 .It Fl D
149 Expand the list of selected processes based on the process tree.
150 .Dq UP
151 will add the ancestor processes,
152 .Dq DOWN
153 will add the descendant processes, and
154 .Dq BOTH
155 will add both the ancestor and the descendant processes.
156 .Fl D
157 does not imply
158 .Fl d ,
159 but works well with it.
160 .It Fl e
161 Display the environment as well.
162 .It Fl f
163 Show command-line and environment information about swapped out processes.
164 This option is honored only if the UID of the user is 0.
165 .It Fl G
166 Display information about processes which are running with the specified
167 real group IDs.
168 .It Fl H
169 Show all of the threads associated with each process.
170 .It Fl h
171 Repeat the information header as often as necessary to guarantee one
172 header per page of information.
173 .It Fl j
174 Print information associated with the following keywords:
175 .Cm user , pid , ppid , pgid , sid , jobc , state , tt , time ,
176 and
177 .Cm command .
178 .It Fl J
179 Display information about processes which match the specified jail IDs.
180 This may be either the
181 .Cm jid
182 or
183 .Cm name
184 of the jail.
185 Use
186 .Fl J
187 .Sy 0
188 to display only host processes.
189 This flag implies
190 .Fl x
191 by default.
192 .It Fl L
193 List the set of keywords available for the
194 .Fl O
195 and
196 .Fl o
197 options.
198 .It Fl l
199 Display information associated with the following keywords:
200 .Cm uid , pid , ppid , cpu , pri , nice , vsz , rss , mwchan , state ,
201 .Cm tt , time ,
202 and
203 .Cm command .
204 .It Fl M
205 Extract values associated with the name list from the specified core
206 instead of the currently running system.
207 .It Fl m
208 Sort by memory usage, instead of the combination of controlling
209 terminal and process ID.
210 .It Fl N
211 Extract the name list from the specified system instead of the default,
212 which is the kernel image the system has booted from.
213 .It Fl O
214 Add the information associated with the space or comma separated list
215 of keywords specified, after the process ID,
216 in the default information
217 display.
218 Keywords may be appended with an equals
219 .Pq Ql =
220 sign and a string.
221 This causes the printed header to use the specified string instead of
222 the standard header.
223 .It Fl o
224 Display information associated with the space or comma separated
225 list of keywords specified.
226 The last keyword in the list may be appended with an equals
227 .Pq Ql =
228 sign and a string that spans the rest of the argument, and can contain
229 space and comma characters.
230 This causes the printed header to use the specified string instead of
231 the standard header.
232 Multiple keywords may also be given in the form of more than one
233 .Fl o
234 option.
235 So the header texts for multiple keywords can be changed.
236 If all keywords have empty header texts, no header line is written.
237 .It Fl p
238 Display information about processes which match the specified process IDs.
239 .It Fl r
240 Sort by current CPU usage, instead of the combination of controlling
241 terminal and process ID.
242 .It Fl S
243 Change the way the process times, namely cputime, systime, and usertime,
244 are calculated by summing all exited children to their parent process.
245 .It Fl T
246 Display information about processes attached to the device associated
247 with the standard input.
248 .It Fl t
249 Display information about processes attached to the specified terminal
250 devices.
251 Full pathnames, as well as abbreviations (see explanation of the
252 .Cm tt
253 keyword) can be specified.
254 .It Fl U
255 Display the processes belonging to the specified usernames.
256 .It Fl u
257 Display information associated with the following keywords:
258 .Cm user , pid , %cpu , %mem , vsz , rss , tt , state , start , time ,
259 and
260 .Cm command .
261 The
262 .Fl u
263 option implies the
264 .Fl r
265 option.
266 .It Fl v
267 Display information associated with the following keywords:
268 .Cm pid , state , time , sl , re , pagein , vsz , rss , lim , tsiz ,
269 .Cm %cpu , %mem ,
270 and
271 .Cm command .
272 The
273 .Fl v
274 option implies the
275 .Fl m
276 option.
277 .It Fl w
278 Use at least 132 columns to display information, instead of the default which
279 is the window size if
280 .Nm
281 is associated with a terminal.
282 If the
283 .Fl w
284 option is specified more than once,
285 .Nm
286 will use as many columns as necessary without regard for the window size.
287 Note that this option has no effect if the
288 .Dq command
289 column is not the last column displayed.
290 .It Fl X
291 When displaying processes matched by other options, skip any processes
292 which do not have a controlling terminal.
293 This is the default behaviour.
294 .It Fl x
295 When displaying processes matched by other options, include processes
296 which do not have a controlling terminal.
297 This is the opposite of the
298 .Fl X
299 option.
300 If both
301 .Fl X
302 and
303 .Fl x
304 are specified in the same command, then
305 .Nm
306 will use the one which was specified last.
307 .It Fl Z
308 Add
309 .Xr mac 4
310 label to the list of keywords for which
311 .Nm
312 will display information.
313 .El
314 .Pp
315 A complete list of the available keywords are listed below.
316 Some of these keywords are further specified as follows:
317 .Bl -tag -width lockname
318 .It Cm %cpu
319 The CPU utilization of the process; this is a decaying average over up to
320 a minute of previous (real) time.
321 Since the time base over which this is computed varies (since processes may
322 be very young) it is possible for the sum of all
323 .Cm %cpu
324 fields to exceed 100%.
325 .It Cm %mem
326 The percentage of real memory used by this process.
327 .It Cm class
328 Login class associated with the process.
329 .It Cm flags
330 The flags associated with the process as in
331 the include file
332 .In sys/proc.h :
333 .Bl -column P_SINGLE_BOUNDARY 0x40000000
334 .It Dv "P_ADVLOCK" Ta No "0x00001" Ta "Process may hold a POSIX advisory lock"
335 .It Dv "P_CONTROLT" Ta No "0x00002" Ta "Has a controlling terminal"
336 .It Dv "P_KPROC" Ta No "0x00004" Ta "Kernel process"
337 .It Dv "P_PPWAIT" Ta No "0x00010" Ta "Parent is waiting for child to exec/exit"
338 .It Dv "P_PROFIL" Ta No "0x00020" Ta "Has started profiling"
339 .It Dv "P_STOPPROF" Ta No "0x00040" Ta "Has thread in requesting to stop prof"
340 .It Dv "P_HADTHREADS" Ta No "0x00080" Ta "Has had threads (no cleanup shortcuts)"
341 .It Dv "P_SUGID" Ta No "0x00100" Ta "Had set id privileges since last exec"
342 .It Dv "P_SYSTEM" Ta No "0x00200" Ta "System proc: no sigs, stats or swapping"
343 .It Dv "P_SINGLE_EXIT" Ta No "0x00400" Ta "Threads suspending should exit, not wait"
344 .It Dv "P_TRACED" Ta No "0x00800" Ta "Debugged process being traced"
345 .It Dv "P_WAITED" Ta No "0x01000" Ta "Someone is waiting for us"
346 .It Dv "P_WEXIT" Ta No "0x02000" Ta "Working on exiting"
347 .It Dv "P_EXEC" Ta No "0x04000" Ta "Process called exec"
348 .It Dv "P_WKILLED" Ta No "0x08000" Ta "Killed, shall go to kernel/user boundary ASAP"
349 .It Dv "P_CONTINUED" Ta No "0x10000" Ta "Proc has continued from a stopped state"
350 .It Dv "P_STOPPED_SIG" Ta No "0x20000" Ta "Stopped due to SIGSTOP/SIGTSTP"
351 .It Dv "P_STOPPED_TRACE" Ta No "0x40000" Ta "Stopped because of tracing"
352 .It Dv "P_STOPPED_SINGLE" Ta No "0x80000" Ta "Only one thread can continue"
353 .It Dv "P_PROTECTED" Ta No "0x100000" Ta "Do not kill on memory overcommit"
354 .It Dv "P_SIGEVENT" Ta No "0x200000" Ta "Process pending signals changed"
355 .It Dv "P_SINGLE_BOUNDARY" Ta No "0x400000" Ta "Threads should suspend at user boundary"
356 .It Dv "P_HWPMC" Ta No "0x800000" Ta "Process is using HWPMCs"
357 .It Dv "P_JAILED" Ta No "0x1000000" Ta "Process is in jail"
358 .It Dv "P_TOTAL_STOP" Ta No "0x2000000" Ta "Stopped for system suspend"
359 .It Dv "P_INEXEC" Ta No "0x4000000" Ta Process is in Xr execve 2
360 .It Dv "P_STATCHILD" Ta No "0x8000000" Ta "Child process stopped or exited"
361 .It Dv "P_INMEM" Ta No "0x10000000" Ta "Loaded into memory"
362 .It Dv "P_SWAPPINGOUT" Ta No "0x20000000" Ta "Process is being swapped out"
363 .It Dv "P_SWAPPINGIN" Ta No "0x40000000" Ta "Process is being swapped in"
364 .It Dv "P_PPTRACE" Ta No "0x80000000" Ta "Vforked child issued ptrace(PT_TRACEME)"
365 .El
366 .It Cm flags2
367 The flags kept in
368 .Va p_flag2
369 associated with the process as in
370 the include file
371 .In sys/proc.h :
372 .Bl -column P2_INHERIT_PROTECTED 0x00000001
373 .It Dv "P2_INHERIT_PROTECTED" Ta No "0x00000001" Ta "New children get P_PROTECTED"
374 .It Dv "P2_NOTRACE" Ta No "0x00000002" Ta "No" Xr ptrace 2 attach or coredumps
375 .It Dv "P2_NOTRACE_EXEC" Ta No "0x00000004" Ta Keep P2_NOPTRACE on Xr execve 2
376 .It Dv "P2_AST_SU" Ta No "0x00000008" Ta "Handles SU ast for kthreads"
377 .It Dv "P2_PTRACE_FSTP" Ta No "0x00000010" Ta "SIGSTOP from PT_ATTACH not yet handled"
378 .El
379 .It Cm label
380 The MAC label of the process.
381 .It Cm lim
382 The soft limit on memory used, specified via a call to
383 .Xr setrlimit 2 .
384 .It Cm lstart
385 The exact time the command started, using the
386 .Ql %c
387 format described in
388 .Xr strftime 3 .
389 .It Cm lockname
390 The name of the lock that the process is currently blocked on.
391 If the name is invalid or unknown, then
392 .Dq ???\&
393 is displayed.
394 .It Cm logname
395 The login name associated with the session the process is in (see
396 .Xr getlogin 2 ) .
397 .It Cm mwchan
398 The event name if the process is blocked normally, or the lock name if
399 the process is blocked on a lock.
400 See the wchan and lockname keywords
401 for details.
402 .It Cm nice
403 The process scheduling increment (see
404 .Xr setpriority 2 ) .
405 .It Cm rss
406 the real memory (resident set) size of the process (in 1024 byte units).
407 .It Cm start
408 The time the command started.
409 If the command started less than 24 hours ago, the start time is
410 displayed using the
411 .Dq Li %H:%M
412 format described in
413 .Xr strftime 3 .
414 If the command started less than 7 days ago, the start time is
415 displayed using the
416 .Dq Li %a%H
417 format.
418 Otherwise, the start time is displayed using the
419 .Dq Li %e%b%y
420 format.
421 .It Cm state
422 The state is given by a sequence of characters, for example,
423 .Dq Li RWNA .
424 The first character indicates the run state of the process:
425 .Pp
426 .Bl -tag -width indent -compact
427 .It Li D
428 Marks a process in disk (or other short term, uninterruptible) wait.
429 .It Li I
430 Marks a process that is idle (sleeping for longer than about 20 seconds).
431 .It Li L
432 Marks a process that is waiting to acquire a lock.
433 .It Li R
434 Marks a runnable process.
435 .It Li S
436 Marks a process that is sleeping for less than about 20 seconds.
437 .It Li T
438 Marks a stopped process.
439 .It Li W
440 Marks an idle interrupt thread.
441 .It Li Z
442 Marks a dead process (a
443 .Dq zombie ) .
444 .El
445 .Pp
446 Additional characters after these, if any, indicate additional state
447 information:
448 .Pp
449 .Bl -tag -width indent -compact
450 .It Li +
451 The process is in the foreground process group of its control terminal.
452 .It Li <
453 The process has raised CPU scheduling priority.
454 .It Li C
455 The process is in
456 .Xr capsicum 4
457 capability mode.
458 .It Li E
459 The process is trying to exit.
460 .It Li J
461 Marks a process which is in
462 .Xr jail 2 .
463 The hostname of the prison can be found in
464 .Pa /proc/ Ns Ao Ar pid Ac Ns Pa /status .
465 .It Li L
466 The process has pages locked in core (for example, for raw I/O).
467 .It Li N
468 The process has reduced CPU scheduling priority (see
469 .Xr setpriority 2 ) .
470 .It Li s
471 The process is a session leader.
472 .It Li V
473 The process' parent is suspended during a
474 .Xr vfork 2 ,
475 waiting for the process to exec or exit.
476 .It Li W
477 The process is swapped out.
478 .It Li X
479 The process is being traced or debugged.
480 .El
481 .It Cm tt
482 An abbreviation for the pathname of the controlling terminal, if any.
483 The abbreviation consists of the three letters following
484 .Pa /dev/tty ,
485 or, for pseudo-terminals, the corresponding entry in
486 .Pa /dev/pts .
487 This is followed by a
488 .Ql -
489 if the process can no longer reach that
490 controlling terminal (i.e., it has been revoked).
491 A
492 .Ql -
493 without a preceding two letter abbreviation or pseudo-terminal device number
494 indicates a process which never had a controlling terminal.
495 The full pathname of the controlling terminal is available via the
496 .Cm tty
497 keyword.
498 .It Cm wchan
499 The event (an address in the system) on which a process waits.
500 When printed numerically, the initial part of the address is
501 trimmed off and the result is printed in hex, for example, 0x80324000 prints
502 as 324000.
503 .El
504 .Pp
505 When printing using the command keyword, a process that has exited and
506 has a parent that has not yet waited for the process (in other words, a zombie)
507 is listed as
508 .Dq Li <defunct> ,
509 and a process which is blocked while trying
510 to exit is listed as
511 .Dq Li <exiting> .
512 If the arguments cannot be located (usually because it has not been set, as is
513 the case of system processes and/or kernel threads) the command name is printed
514 within square brackets.
515 The
516 .Nm
517 utility first tries to obtain the arguments cached by the kernel (if they were
518 shorter than the value of the
519 .Va kern.ps_arg_cache_limit
520 sysctl).
521 The process can change the arguments shown with
522 .Xr setproctitle 3 .
523 Otherwise,
524 .Nm
525 makes an educated guess as to the file name and arguments given when the
526 process was created by examining memory or the swap area.
527 The method is inherently somewhat unreliable and in any event a process
528 is entitled to destroy this information.
529 The ucomm (accounting) keyword can, however, be depended on.
530 If the arguments are unavailable or do not agree with the ucomm keyword,
531 the value for the ucomm keyword is appended to the arguments in parentheses.
532 .Sh KEYWORDS
533 The following is a complete list of the available keywords and their
534 meanings.
535 Several of them have aliases (keywords which are synonyms).
536 .Pp
537 .Bl -tag -width ".Cm sigignore" -compact
538 .It Cm %cpu
539 percentage CPU usage (alias
540 .Cm pcpu )
541 .It Cm %mem
542 percentage memory usage (alias
543 .Cm pmem )
544 .It Cm acflag
545 accounting flag (alias
546 .Cm acflg )
547 .It Cm args
548 command and arguments
549 .It Cm class
550 login class
551 .It Cm comm
552 command
553 .It Cm command
554 command and arguments
555 .It Cm cow
556 number of copy-on-write faults
557 .It Cm cpu
558 The processor number on which the process is executing (visible only on SMP
559 systems).
560 .It Cm dsiz
561 data size (in Kbytes)
562 .It Cm emul
563 system-call emulation environment (ABI)
564 .It Cm etime
565 elapsed running time, format
566 .Do
567 .Op days- Ns
568 .Op hours\&: Ns
569 minutes:seconds
570 .Dc
571 .It Cm etimes
572 elapsed running time, in decimal integer seconds
573 .It Cm fib
574 default FIB number, see
575 .Xr setfib 1
576 .It Cm flags
577 the process flags, in hexadecimal (alias
578 .Cm f )
579 .It Cm flags2
580 the additional set of process flags, in hexadecimal (alias
581 .Cm f2 )
582 .It Cm gid
583 effective group ID (alias
584 .Cm egid )
585 .It Cm group
586 group name (from egid) (alias
587 .Cm egroup )
588 .It Cm inblk
589 total blocks read (alias
590 .Cm inblock )
591 .It Cm jail
592 jail name
593 .It Cm jid
594 jail ID
595 .It Cm jobc
596 job control count
597 .It Cm ktrace
598 tracing flags
599 .It Cm label
600 MAC label
601 .It Cm lim
602 memoryuse limit
603 .It Cm lockname
604 lock currently blocked on (as a symbolic name)
605 .It Cm logname
606 login name of user who started the session
607 .It Cm lstart
608 time started
609 .It Cm lwp
610 thread (light-weight process) ID (alias
611 .Cm tid )
612 .It Cm majflt
613 total page faults
614 .It Cm minflt
615 total page reclaims
616 .It Cm msgrcv
617 total messages received (reads from pipes/sockets)
618 .It Cm msgsnd
619 total messages sent (writes on pipes/sockets)
620 .It Cm mwchan
621 wait channel or lock currently blocked on
622 .It Cm nice
623 nice value (alias
624 .Cm ni )
625 .It Cm nivcsw
626 total involuntary context switches
627 .It Cm nlwp
628 number of threads (light-weight processes) tied to a process
629 .It Cm nsigs
630 total signals taken (alias
631 .Cm nsignals )
632 .It Cm nswap
633 total swaps in/out
634 .It Cm nvcsw
635 total voluntary context switches
636 .It Cm nwchan
637 wait channel (as an address)
638 .It Cm oublk
639 total blocks written (alias
640 .Cm oublock )
641 .It Cm paddr
642 process pointer
643 .It Cm pagein
644 pageins (same as majflt)
645 .It Cm pgid
646 process group number
647 .It Cm pid
648 process ID
649 .It Cm ppid
650 parent process ID
651 .It Cm pri
652 scheduling priority
653 .It Cm re
654 core residency time (in seconds; 127 = infinity)
655 .It Cm rgid
656 real group ID
657 .It Cm rgroup
658 group name (from rgid)
659 .It Cm rss
660 resident set size
661 .It Cm rtprio
662 realtime priority (see
663 .Xr rtprio 1)
664 .It Cm ruid
665 real user ID
666 .It Cm ruser
667 user name (from ruid)
668 .It Cm sid
669 session ID
670 .It Cm sig
671 pending signals (alias
672 .Cm pending )
673 .It Cm sigcatch
674 caught signals (alias
675 .Cm caught )
676 .It Cm sigignore
677 ignored signals (alias
678 .Cm ignored )
679 .It Cm sigmask
680 blocked signals (alias
681 .Cm blocked )
682 .It Cm sl
683 sleep time (in seconds; 127 = infinity)
684 .It Cm ssiz
685 stack size (in Kbytes)
686 .It Cm start
687 time started
688 .It Cm state
689 symbolic process state (alias
690 .Cm stat )
691 .It Cm svgid
692 saved gid from a setgid executable
693 .It Cm svuid
694 saved UID from a setuid executable
695 .It Cm systime
696 accumulated system CPU time
697 .It Cm tdaddr
698 thread address
699 .It Cm tdname
700 thread name
701 .It Cm tdev
702 control terminal device number
703 .It Cm time
704 accumulated CPU time, user + system (alias
705 .Cm cputime )
706 .It Cm tpgid
707 control terminal process group ID
708 .It Cm tracer
709 tracer process ID
710 .\".It Cm trss
711 .\"text resident set size (in Kbytes)
712 .It Cm tsid
713 control terminal session ID
714 .It Cm tsiz
715 text size (in Kbytes)
716 .It Cm tt
717 control terminal name (two letter abbreviation)
718 .It Cm tty
719 full name of control terminal
720 .It Cm ucomm
721 name to be used for accounting
722 .It Cm uid
723 effective user ID (alias
724 .Cm euid )
725 .It Cm upr
726 scheduling priority on return from system call (alias
727 .Cm usrpri )
728 .It Cm uprocp
729 process pointer
730 .It Cm user
731 user name (from UID)
732 .It Cm usertime
733 accumulated user CPU time
734 .It Cm vmaddr
735 vmspace pointer
736 .It Cm vsz
737 virtual size in Kbytes (alias
738 .Cm vsize )
739 .It Cm wchan
740 wait channel (as a symbolic name)
741 .It Cm xstat
742 exit or stop status (valid only for stopped or zombie process)
743 .El
744 .Pp
745 Note that the
746 .Cm pending
747 column displays bitmask of signals pending in the process queue when
748 .Fl H
749 option is not specified, otherwise the per-thread queue of pending signals
750 is shown.
751 .Sh ENVIRONMENT
752 The following environment variables affect the execution of
753 .Nm :
754 .Bl -tag -width ".Ev COLUMNS"
755 .It Ev COLUMNS
756 If set, specifies the user's preferred output width in column positions.
757 By default,
758 .Nm
759 attempts to automatically determine the terminal width.
760 .El
761 .Sh FILES
762 .Bl -tag -width ".Pa /boot/kernel/kernel" -compact
763 .It Pa /boot/kernel/kernel
764 default system namelist
765 .El
766 .Sh EXIT STATUS
767 .Ex -std
768 .Sh EXAMPLES
769 Display information on all system processes:
770 .Pp
771 .Dl $ ps -auxw
772 .Sh SEE ALSO
773 .Xr kill 1 ,
774 .Xr pgrep 1 ,
775 .Xr pkill 1 ,
776 .Xr procstat 1 ,
777 .Xr w 1 ,
778 .Xr kvm 3 ,
779 .Xr libxo 3 ,
780 .Xr strftime 3 ,
781 .Xr xo_parse_args 3 ,
782 .Xr mac 4 ,
783 .Xr procfs 5 ,
784 .Xr pstat 8 ,
785 .Xr sysctl 8 ,
786 .Xr mutex 9
787 .Sh STANDARDS
788 For historical reasons, the
789 .Nm
790 utility under
791 .Fx
792 supports a different set of options from what is described by
793 .St -p1003.2 ,
794 and what is supported on
795 .No non- Ns Bx
796 operating systems.
797 .Sh HISTORY
798 The
799 .Nm
800 command appeared in
801 .At v3
802 in section 8 of the manual.
803 .Sh BUGS
804 Since
805 .Nm
806 cannot run faster than the system and is run as any other scheduled
807 process, the information it displays can never be exact.
808 .Pp
809 The
810 .Nm
811 utility does not correctly display argument lists containing multibyte
812 characters.