1.\"- 2.\" Copyright (c) 2007-2008 Robert N. M. Watson 3.\" 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.\" 14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24.\" SUCH DAMAGE. 25.\" 26.\" $FreeBSD$ 27.\" 28.Dd August 20, 2008 29.Dt PROCSTAT 1 30.Os 31.Sh NAME 32.Nm procstat 33.Nd get detailed process information 34.Sh SYNOPSIS 35.Nm 36.Op Fl h 37.Op Fl w Ar interval 38.Op Fl b | c | f | k | s | t | v 39.Op Fl a | Ar pid ... 40.Sh DESCRIPTION 41The 42.Nm 43utility displays detailed information about the processes identified by the 44.Ar pid 45arguments, or if the 46.Fl a 47flag is used, all processes. 48.Pp 49By default, basic process statistics are printed; one of the following 50options may be specified in order to select more detailed process information 51for printing: 52.Bl -tag -width indent 53.It Fl b 54Display binary information for the process. 55.It Fl c 56Display command line arguments for the process. 57.It Fl f 58Display file descriptor information for the process. 59.It Fl k 60Display the stacks of kernel threads in the process, excluding stacks of 61threads currently running on a CPU and threads with stacks swapped to disk. 62If the flag is repeated, function offsets as well as function names are 63printed. 64.It Fl s 65Display security credential information for the process. 66.It Fl t 67Display thread information for the process. 68.It Fl v 69Display virtual memory mappings for the process. 70.El 71.Pp 72All options generate output in the format of a table, the first field of 73which is the process ID to which the row of information corresponds. 74The 75.Fl h 76flag may be used to suppress table headers. 77.Pp 78The 79.Fl w 80flag may be used to specify a wait interval at which to repeat the printing 81of the requested process information. 82If the 83.Fl w 84flag is not specified, the output will not repeat. 85.Pp 86Some information, such as VM and file descriptor information, is available 87only to the owner of a process or the superuser. 88.Ss Binary Information 89Display the process ID, command, and path to the process binary: 90.Pp 91.Bl -tag -width indent -compact 92.It PID 93process ID 94.It COMM 95command 96.It PATH 97path to process binary (if available) 98.El 99.Ss Command Line Arguments 100Display the process ID, command, and command line arguments: 101.Pp 102.Bl -tag -width indent -compact 103.It PID 104process ID 105.It COMM 106command 107.It ARGS 108command line arguments (if available) 109.El 110.Ss File Descriptors 111Display detailed information about each file descriptor referenced by a 112process, including the process ID, command, file descriptor number, and 113per-file descriptor object information, such as object type and file system 114path: 115.Pp 116.Bl -tag -width indent -compact 117.It PID 118process ID 119.It COMM 120command 121.It FD 122file descriptor number or cwd/root/jail 123.It T 124file descriptor type 125.It V 126vnode type 127.It FLAGS 128file descriptor flags 129.It REF 130file descriptor reference count 131.It OFFSET 132file descriptor offset 133.It PRO 134network protocol 135.It NAME 136file path or socket addresses (if available) 137.El 138.Pp 139The following file descriptor types may be displayed: 140.Pp 141.Bl -tag -width X -compact 142.It c 143crypto 144.It f 145fifo 146.It h 147shared memory 148.It k 149kqueue 150.It m 151message queue 152.It p 153pipe 154.It s 155socket 156.It t 157pseudo-terminal master 158.It v 159vnode 160.El 161.Pp 162The following vnode types may be displayed: 163.Pp 164.Bl -tag -width X -compact 165.It - 166not a vnode 167.It b 168block device 169.It c 170character device 171.It f 172fifo 173.It l 174symbolic link 175.It s 176socket 177.It x 178revoked device 179.El 180.Pp 181The following file descriptor flags may be displayed: 182.Pp 183.Bl -tag -width X -compact 184.It r 185read 186.It w 187write 188.It a 189append 190.It s 191async 192.It f 193fsync 194.It n 195non-blocking 196.It d 197direct I/O 198.It l 199lock held 200.El 201.Ss Kernel Thread Stacks 202Display kernel thread stacks for a process, allowing further interpretation 203of thread wait channels. 204If the 205.Fl k 206flag is repeated, function offsets, not just function names, are printed. 207.Pp 208This feature requires 209.Cd "options STACK" 210or 211.Cd "options DDB" 212to be compiled into the kernel. 213.Pp 214.Bl -tag -width indent -compact 215.It PID 216process ID 217.It TID 218thread ID 219.It COMM 220command 221.It TDNAME 222thread name 223.It KSTACK 224kernel thread call stack 225.El 226.Ss Security Credentials 227Display process credential information: 228.Pp 229.Bl -tag -width indent -compact 230.It PID 231process ID 232.It COMM 233command 234.It EUID 235effective user ID 236.It RUID 237real user ID 238.It SVUID 239saved user ID 240.It EGID 241effective group ID 242.It RGID 243real group ID 244.It SVGID 245saved group ID 246.It GROUPS 247group set 248.El 249.Ss Thread Information 250Display per-thread information, including process ID, per-thread ID, name, 251CPU, and execution state: 252.Pp 253.Bl -tag -width indent -compact 254.It PID 255process ID 256.It TID 257thread ID 258.It COMM 259command 260.It TDNAME 261thread name 262.It CPU 263current or most recent CPU run on 264.It PRI 265thread priority 266.It STATE 267thread state 268.It WCHAN 269thread wait channel 270.El 271.Ss Virtual Memory Mappings 272Display process virtual memory mappings, including addresses, mapping 273meta-data, and mapped object information: 274.Pp 275.Bl -tag -width indent -compact 276.It PID 277process ID 278.It START 279starting address of mapping 280.It END 281ending address of mapping 282.It PRT 283protection flags 284.It RES 285resident pages 286.It PRES 287private resident pages 288.It REF 289reference count 290.It SHD 291shadow page count 292.It FL 293mapping flags 294.It TP 295VM object type 296.El 297.Pp 298The following protection flags may be displayed: 299.Pp 300.Bl -tag -width X -compact 301.It r 302read 303.It w 304write 305.It x 306execute 307.El 308.Pp 309The following VM object types may be displayed: 310.Pp 311.Bl -tag -width XX -compact 312.It -- 313none 314.It dd 315dead 316.It df 317default 318.It dv 319device 320.It ph 321physical 322.It sw 323swap 324.It vn 325vnode 326.El 327.Pp 328The following mapping flags may be displayed: 329.Pp 330.Bl -tag -width X -compact 331.It C 332copy-on-write 333.It N 334needs copy 335.El 336.Sh EXIT STATUS 337.Ex -std 338.Sh SEE ALSO 339.Xr fstat 1 , 340.Xr ps 1 , 341.Xr sockstat 1 , 342.Xr ddb 4 , 343.Xr stack 9 344.Sh AUTHORS 345.An Robert N M Watson 346.Sh BUGS 347Some field values may include spaces, which limits the extent to which the 348output of 349.Nm 350may be mechanically parsed. 351.Pp 352The display of open file or memory mapping pathnames is implemented using the 353kernel's name cache. 354It therefore does not work for file systems 355that do not use the name cache, such as 356.Xr devfs 4 , 357or if the name is not present in the cache due to removal. 358.Pp 359.Nm 360currently supports extracting data only from a live kernel, and not from 361kernel crash dumps. 362