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