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