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 March 7, 2010 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 n 38.Op Fl w Ar interval 39.Op Fl b | c | f | i | j | k | s | t | v 40.Op Fl a | Ar pid ... 41.Sh DESCRIPTION 42The 43.Nm 44utility displays detailed information about the processes identified by the 45.Ar pid 46arguments, or if the 47.Fl a 48flag is used, all processes. 49.Pp 50By default, basic process statistics are printed; one of the following 51options may be specified in order to select more detailed process information 52for printing: 53.Bl -tag -width indent 54.It Fl b 55Display binary information for the process. 56.It Fl c 57Display command line arguments for the process. 58.It Fl f 59Display file descriptor information for the process. 60.It Fl i 61Display signal pending and disposition information for the process. 62.It Fl j 63Display signal pending and blocked information for the process threads. 64.It Fl k 65Display the stacks of kernel threads in the process, excluding stacks of 66threads currently running on a CPU and threads with stacks swapped to disk. 67If the flag is repeated, function offsets as well as function names are 68printed. 69.It Fl s 70Display security credential information for the process. 71.It Fl t 72Display thread information for the process. 73.It Fl v 74Display virtual memory mappings for the process. 75.El 76.Pp 77All options generate output in the format of a table, the first field of 78which is the process ID to which the row of information corresponds. 79The 80.Fl h 81flag may be used to suppress table headers. 82.Pp 83The 84.Fl w 85flag may be used to specify a wait interval at which to repeat the printing 86of the requested process information. 87If the 88.Fl w 89flag is not specified, the output will not repeat. 90.Pp 91Some information, such as VM and file descriptor information, is available 92only to the owner of a process or the superuser. 93.Ss Binary Information 94Display the process ID, command, and path to the process binary: 95.Pp 96.Bl -tag -width indent -compact 97.It PID 98process ID 99.It COMM 100command 101.It PATH 102path to process binary (if available) 103.El 104.Ss Command Line Arguments 105Display the process ID, command, and command line arguments: 106.Pp 107.Bl -tag -width indent -compact 108.It PID 109process ID 110.It COMM 111command 112.It ARGS 113command line arguments (if available) 114.El 115.Ss File Descriptors 116Display detailed information about each file descriptor referenced by a 117process, including the process ID, command, file descriptor number, and 118per-file descriptor object information, such as object type and file system 119path: 120.Pp 121.Bl -tag -width indent -compact 122.It PID 123process ID 124.It COMM 125command 126.It FD 127file descriptor number or cwd/root/jail 128.It T 129file descriptor type 130.It V 131vnode type 132.It FLAGS 133file descriptor flags 134.It REF 135file descriptor reference count 136.It OFFSET 137file descriptor offset 138.It PRO 139network protocol 140.It NAME 141file path or socket addresses (if available) 142.El 143.Pp 144The following file descriptor types may be displayed: 145.Pp 146.Bl -tag -width X -compact 147.It c 148crypto 149.It e 150POSIX semaphore 151.It f 152fifo 153.It h 154shared memory 155.It k 156kqueue 157.It m 158message queue 159.It p 160pipe 161.It s 162socket 163.It t 164pseudo-terminal master 165.It v 166vnode 167.El 168.Pp 169The following vnode types may be displayed: 170.Pp 171.Bl -tag -width X -compact 172.It - 173not a vnode 174.It b 175block device 176.It c 177character device 178.It d 179directory 180.It f 181fifo 182.It l 183symbolic link 184.It r 185regular file 186.It s 187socket 188.It x 189revoked device 190.El 191.Pp 192The following file descriptor flags may be displayed: 193.Pp 194.Bl -tag -width X -compact 195.It r 196read 197.It w 198write 199.It a 200append 201.It s 202async 203.It f 204fsync 205.It n 206non-blocking 207.It d 208direct I/O 209.It l 210lock held 211.El 212.Ss Signal Disposition Information 213Display signal pending and disposition for a process: 214.Pp 215.Bl -tag -width ident -compact 216.It PID 217process ID 218.It COMM 219command 220.It SIG 221signal name 222.It FLAGS 223process signal disposition details, three symbols 224.Bl -tag -width X -compact 225.It P 226if signal is pending in the global process queue, - otherwise 227.It I 228if signal delivery disposition is SIGIGN, - otherwise 229.It C 230if signal delivery is to catch it, - otherwise 231.El 232.El 233.Pp 234If 235.Fl n 236switch is given, the signal numbers are shown instead of signal names. 237.Ss Thread Signal Information 238Display signal pending and blocked for a process threads: 239.Pp 240.Bl -tag -width ident -compact 241.It PID 242process ID 243.It COMM 244command 245.It TID 246thread ID 247.It SIG 248signal name 249.It FLAGS 250thread signal delivery status, two symbols 251.Bl -tag -width X -compact 252.It P 253if signal is pending for the thread, - otherwise 254.It B 255if signal is blocked in the thread signal mask, - if not blocked 256.El 257.El 258.Pp 259The 260.Fl n 261switch has the same effect as for the 262.Fl i 263switch, the signals numbers are shown instead of signal names. 264.Ss Kernel Thread Stacks 265Display kernel thread stacks for a process, allowing further interpretation 266of thread wait channels. 267If the 268.Fl k 269flag is repeated, function offsets, not just function names, are printed. 270.Pp 271This feature requires 272.Cd "options STACK" 273or 274.Cd "options DDB" 275to be compiled into the kernel. 276.Pp 277.Bl -tag -width indent -compact 278.It PID 279process ID 280.It TID 281thread ID 282.It COMM 283command 284.It TDNAME 285thread name 286.It KSTACK 287kernel thread call stack 288.El 289.Ss Security Credentials 290Display process credential information: 291.Pp 292.Bl -tag -width indent -compact 293.It PID 294process ID 295.It COMM 296command 297.It EUID 298effective user ID 299.It RUID 300real user ID 301.It SVUID 302saved user ID 303.It EGID 304effective group ID 305.It RGID 306real group ID 307.It SVGID 308saved group ID 309.It GROUPS 310group set 311.El 312.Ss Thread Information 313Display per-thread information, including process ID, per-thread ID, name, 314CPU, and execution state: 315.Pp 316.Bl -tag -width indent -compact 317.It PID 318process ID 319.It TID 320thread ID 321.It COMM 322command 323.It TDNAME 324thread name 325.It CPU 326current or most recent CPU run on 327.It PRI 328thread priority 329.It STATE 330thread state 331.It WCHAN 332thread wait channel 333.El 334.Ss Virtual Memory Mappings 335Display process virtual memory mappings, including addresses, mapping 336meta-data, and mapped object information: 337.Pp 338.Bl -tag -width indent -compact 339.It PID 340process ID 341.It START 342starting address of mapping 343.It END 344ending address of mapping 345.It PRT 346protection flags 347.It RES 348resident pages 349.It PRES 350private resident pages 351.It REF 352reference count 353.It SHD 354shadow page count 355.It FL 356mapping flags 357.It TP 358VM object type 359.El 360.Pp 361The following protection flags may be displayed: 362.Pp 363.Bl -tag -width X -compact 364.It r 365read 366.It w 367write 368.It x 369execute 370.El 371.Pp 372The following VM object types may be displayed: 373.Pp 374.Bl -tag -width XX -compact 375.It -- 376none 377.It dd 378dead 379.It df 380default 381.It dv 382device 383.It ph 384physical 385.It sw 386swap 387.It vn 388vnode 389.El 390.Pp 391The following mapping flags may be displayed: 392.Pp 393.Bl -tag -width X -compact 394.It C 395copy-on-write 396.It N 397needs copy 398.El 399.Sh EXIT STATUS 400.Ex -std 401.Sh SEE ALSO 402.Xr fstat 1 , 403.Xr ps 1 , 404.Xr sockstat 1 , 405.Xr ddb 4 , 406.Xr stack 9 407.Sh AUTHORS 408.An Robert N M Watson 409.Sh BUGS 410Some field values may include spaces, which limits the extent to which the 411output of 412.Nm 413may be mechanically parsed. 414.Pp 415The display of open file or memory mapping pathnames is implemented using the 416kernel's name cache. 417If a file system does not use the name cache, or the path to a file is not in 418the cache, a path will not be displayed. 419.Pp 420.Nm 421currently supports extracting data only from a live kernel, and not from 422kernel crash dumps. 423