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