xref: /freebsd/usr.bin/procstat/procstat.1 (revision 7d0d268b8a67f28ccefdd0b8ce6fb38acac78d80)
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