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