Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PROCSTAT(1)		     General Commands Manual		     PROCSTAT(1)

NAME
     procstat -- get detailed process information

SYNOPSIS
     procstat [--libxo] [-h] [-M core] [-N system] [-w interval] command
	      [pid ... | core ...]
     procstat [--libxo] -a [-h] [-M core] [-N system] [-w interval] command
     procstat [--libxo] [-h] [-M core] [-N system] [-w interval] [-b | -c | -e |
	      -f [-C] | -i [-n] | -j [-n] | -k [-k] | -l | -r [-H] | -s | -S |
	      -t | -v | -x] [pid ... | core ...]
     procstat [--libxo] -a [-h] [-M core] [-N system] [-w interval] [-b | -c |
	      -e | -f [-C] | -i [-n] | -j [-n] | -k [-k] | -l | -r [-H] | -s |
	      -S | -t | -v | -x]
     procstat [--libxo] -L [-h] [-M core] [-N system] [-w interval] core ...
     pargs [--libxo] pid ...
     penv [--libxo] pid ...
     pwdx [--libxo] pid ...

DESCRIPTION
     procstat  utility displays detailed information about the processes identi-
     fied by the pid arguments, or if the -a flag is used,  all  processes.   It
     can  also	display  information  extracted from a process core file, if the
     core file is specified as the argument.

     The pargs, penv and pwdx utilities display the arguments, environment,  and
     current working directory, respectively of the process specified by pid ar-
     gument.  They mimic the behavior of Solaris utilities of the same names.

     If  the --libxo flag is specified the output is generated via libxo(3) in a
     selection of different human and  machine	readable  formats.   See  xo_op-
     tions(7) for details on command line arguments.

     The following commands are available for procstat:

     advlock
	     Print  information  about advisory locks on files.  All three types
	     of locks  are  listed,  BSD-style	lockf(2),  POSIX-style	fcntl(2)
	     F_SETLK, and remote lockd(8) locks used by NFSv3.

	     Note  that  neither the -a option nor pid list can be used to limit
	     the display of the locks, mostly because some types of locks do not
	     have local (or any) owning processes.

     argument(s) | -c
	     Display command line arguments for the process.

	     Substring commands are accepted.

     auxv | -x
	     Display ELF auxiliary vector for the process.

     basic   Print basic process statistics (this is the default).

     binary | -b
	     Display binary information for the process.

	     Substring commands are accepted.

     credential(s) | -s
	     Display security credential information for the process.

	     Substring commands are accepted.

     cpuset | cs | -S
	     Display the cpuset information for the thread.

     environment | -e
	     Display environment variables for the process.

	     Substring commands are accepted.

     file(s) | fd(s) | -f
	     Display file descriptor information for the process.

	     If the -C subcommand flag is used then additional capability infor-
	     mation is printed.

     kqueue(s) [-v]
	     Display the events registered in the process kqueues.   The  filter
	     name,  filter-specific  identifier,  flags,  filter-specific flags,
	     system and user data, and event status are displayed.   If  the  -v
	     verbose  flag  is provided to the subcommand, the values of the ext
	     array are displayed as well.

	     For flags, a string is printed consisting of the following  symbols
	     corresponding to set flags:
	     O	EV_ONESHOT
	     C	EV_CLEAR
	     R	EV_RECEIPT
	     D	EV_DISPATCH
	     d	EV_DROP
	     1	EV_FLAG1
	     2	EV_FLAG2

	     For status:
	     A	KNOTE_STATUS_ACTIVE
	     Q	KNOTE_STATUS_QUEUED
	     D	KNOTE_STATUS_DISABLED
	     d	KNOTE_STATUS_DETACHED
	     K	KNOTE_STATUS_KQUEUE

     kstack | -k
	     Display  the  stacks  of  kernel  threads in the process, excluding
	     stacks of threads currently running on a CPU in userspace.

	     If the -v subcommand option is used (or the  command  flag  is  re-
	     peated), function offsets as well as function names are printed.

     pargs   Display arguments for the process.

     penv    Display environment variables for the process.

     ptlwpinfo | -L
	     Display  LWP  info  for the process pertaining to its signal driven
	     exit.

     pwdx    Display current working directory for the process.

     rlimit | -l
	     Display resource limits for the process.

     rlimitusage
	     Display the usage of the resource limits for the process.

     rusage | -r
	     Display resource usage information for the process.

	     If the -v (or -H) subcommand flag is used then  per-thread  statis-
	     tics  are	printed, rather than per-process statistics.  The second
	     field in the table will list the thread ID to which the row of  in-
	     formation corresponds.

     signal(s) | -i
	     Display signal pending and disposition information for the process.

	     If  the  -n subcommand option is used, the signal numbers are shown
	     instead of signal names.

	     Substring commands are accepted.

     thread(s) | -t
	     Display thread information for the process.

     tsignal(s) | -j
	     Display signal pending and blocked information  for  the  process's
	     threads.

	     If  the  -n subcommand option is used, the signal numbers are shown
	     instead of signal names.

	     Substring commands are accepted.

     vm | -v
	     Display virtual memory mappings for the process.

     All options generate output in the format of a table, the	first  field  of
     which  is	the process ID to which the row of information corresponds.  The
     -h flag may be used to suppress table headers.

     The -w flag may be used to specify a wait interval at which to  repeat  the
     printing of the requested process information.  If the -w flag is not spec-
     ified, the output will not repeat.

     Information  for  VM, file descriptor, and cpuset options is available only
     to the owner of a process or the superuser.  A cpuset value displayed as -1
     means that the information is either invalid or not available.

   Binary Information
     Display the process ID, command, and path to the process binary:

     PID     process ID
     COMM    command
     OSREL   osreldate for process binary
     PATH    path to process binary (if available)

   Command Line Arguments
     Display the process ID, command, and command line arguments:

     PID     process ID
     COMM    command
     ARGS    command line arguments (if available)

   Environment Variables
     Display the process ID, command, and environment variables:

     PID	  process ID
     COMM	  command
     ENVIRONMENT  environment variables (if available)

   File Descriptors
     Display detailed information about each file  descriptor  referenced  by  a
     process,  including  the  process	ID, command, file descriptor number, and
     per-file descriptor object information, such as object type and file system
     path.  By default, the following information will be printed:

     PID     process ID
     COMM    command
     FD      file descriptor number or cwd/root/jail
     T	     file descriptor type
     V	     vnode type
     FLAGS   file descriptor flags
     REF     file descriptor reference count
     OFFSET  file descriptor offset
     PRO     network protocol
     NAME    file path or socket addresses (if available)

     The following file descriptor types may be displayed:

     e	POSIX semaphore
     E	eventfd
     f	fifo
     h	shared memory
     i	inotify descriptor
     k	kqueue
     m	message queue
     P	process descriptor
     p	pipe
     s	socket
     t	pseudo-terminal master
     v	vnode

     The following vnode types may be displayed:

     -	not a vnode
     b	block device
     c	character device
     d	directory
     f	fifo
     l	symbolic link
     r	regular file
     s	socket
     x	revoked device

     The following file descriptor flags may be displayed:

     r	read
     w	write
     a	append
     s	async
     f	fsync
     n	non-blocking
     d	direct I/O
     l	lock held

     If the -C flag is specified, the vnode type, reference  count,  and  offset
     fields will be omitted, and a new capabilities field will be included list-
     ing capabilities, as described in cap_rights_limit(2), present for each ca-
     pability descriptor.

     The  following  network protocols may be displayed (grouped by address fam-
     ily):

     AF_INET, AF_INET6

     ICM     IPPROTO_ICMP; see icmp(4).
     IP?     unknown protocol.
     RAW     IPPROTO_RAW; see ip(4).
     SCT     IPPROTO_SCTP; see sctp(4).
     TCP     IPPROTO_TCP; see tcp(4).
     UDP     IPPROTO_UDP; see udp(4).

     AF_LOCAL

     UDD     Datagram socket.
     UDS     Stream socket.
     UDQ     Sequential Packet Stream socket.
     UD?     unknown protocol.

     AF_DIVERT

     IPD     Divert socket; see divert(4).

     ?	     unknown address family.

   Signal Disposition Information
     Display signal pending and disposition for a process:

     PID     process ID
     COMM    command
     SIG     signal name
     FLAGS   process signal disposition details, three symbols
	     P	if signal is pending in the global process queue; - otherwise.
	     I	if signal delivery disposition is SIG_IGN; - otherwise.
	     C	if the signal will be caught; - otherwise.

     If -n switch is given, the signal	numbers  are  shown  instead  of  signal
     names.

   Thread Signal Information
     Display signal pending and blocked for a process's threads:

     PID     process ID
     TID     thread ID
     COMM    command
     SIG     signal name
     FLAGS   thread signal delivery status, two symbols
	     P	if signal is pending for the thread, - otherwise
	     B	if signal is blocked in the thread signal mask, - if not blocked

     The  -n switch has the same effect as for the -i switch: the signal numbers
     are shown instead of signal names.

   Kernel Thread Stacks
     Display kernel thread stacks for a process, allowing further interpretation
     of thread wait channels.  If the -k flag is repeated, function offsets, not
     just function names, are printed.

     This feature requires options STACK or options DDB to be compiled into  the
     kernel.

     PID     process ID
     TID     thread ID
     COMM    command
     TDNAME  thread name
     KSTACK  kernel thread call stack

   Resource Limits
     Display resource limits for a process:

     PID     process ID
     COMM    command
     RLIMIT  resource limit name
     SOFT    soft limit
     HARD    hard limit

   Resource Usage
     Display  resource	usage  for  a process.	If the -H flag is specified, re-
     source usage for individual threads is displayed instead.

     PID       process ID
     TID       thread ID (if -H is specified)
     COMM      command
     RESOURCE  resource name
     VALUE     current usage

   Security Credentials
     Display process credential information:

     PID     process ID
     COMM    command
     EUID    effective user ID
     RUID    real user ID
     SVUID   saved user ID
     EGID    effective group ID
     RGID    real group ID
     SVGID   saved group ID
     UMASK   file creation mode mask
     FLAGS   credential flags
     GROUPS  group set

     The following credential flags may be displayed:

     C	capability mode

   Thread Information
     Display per-thread information, including process ID, per-thread ID,  name,
     CPU, and execution state:

     PID     process ID
     TID     thread ID
     COMM    command
     TDNAME  thread name
     CPU     current or most recent CPU run on
     PRI     thread priority
     STATE   thread state
     WCHAN   thread wait channel

   Virtual Memory Mappings
     Display process virtual memory mappings, including addresses, mapping meta-
     data, and mapped object information:

     PID     process ID
     START   starting address of mapping
     END     ending address of mapping
     PRT     protection flags
     RES     resident pages
     PRES    private resident pages
     REF     reference count
     SHD     shadow page count
     FLAG    mapping flags
     TP      VM object type

     The following protection flags may be displayed:

     r	read
     w	write
     x	execute

     The following VM object types may be displayed:

     --  none
     dd  dead
     df  default
     dv  device
     md  device with managed pages (GEM/TTM)
     ph  physical
     sg  scatter/gather
     sw  swap
     vn  vnode
     gd  guard (pseudo-type)

     The following mapping flags may be displayed:

     C	copy-on-write
     N	needs copy
     S	one or more superpage mappings are used
     D	grows down (top-down stack)
     U	grows up (bottom-up stack)
     W	pages in this range are locked by mlock(2) or mlockall(2)

   ELF Auxiliary Vector
     Display ELF auxiliary vector values:

     PID     process ID
     COMM    command
     AUXV    auxiliary vector name
     VALUE   auxiliary vector value

   Advisory Lock Information
     RW      Read/Write type, RO for read, RW for write lock
     TYPE    Type  of  the  lock, one of FLOCK for flock(2), FCNTL for fcntl(2),
	     LOCKD for remote
     PID     Process id of the owner, for FCNTL and remote types
     SYSID   Remote system id if applicable
     FSID    File system id where the locked file resize
     RDEV    rdev for the file system
     INO     Unique file identifier (inode number) of the  locked  file  on  the
	     file system
     START   Start offset of the locked range
     LEN     Length of the locked range.  Zero means till EOF
     PATH    If available, the path of the locked file

EXIT STATUS
     The procstat utility exits 0 on success, and >0 if an error occurs.

EXAMPLES
     Show binary information about the current shell:

	   $ procstat binary $$
	     PID COMM		     OSREL PATH
	   46620 bash		   1201000 /usr/local/bin/bash

     Same as above but showing information about open file descriptors:

	   $ procstat files $$
	     PID COMM		     FD T V FLAGS    REF  OFFSET PRO NAME
	   46620 bash		   text v r r-------   -       - -   /usr/local/bin/bash
	   46620 bash		   ctty v c rw------   -       - -   /dev/pts/12
	   46620 bash		    cwd v d r-------   -       - -   /tmp
	   46620 bash		   root v d r-------   -       - -   /
	   46620 bash		      0 v c rw------   7  372071 -   /dev/pts/12
	   46620 bash		      1 v c rw------   7  372071 -   /dev/pts/12
	   46620 bash		      2 v c rw------   7  372071 -   /dev/pts/12
	   46620 bash		    255 v c rw------   7  372071 -   /dev/pts/12

     Show the arguments used to launch init(8):

	   $ procstat arguments 1
	     PID COMM		  ARGS
	       1 init		  /sbin/init --

     Extract binary information from a core dump:

	   $ procstat binary core.36642
	     PID COMM		     OSREL PATH
	   36642 top		   1201000 /usr/bin/top

     Trying to extract information from a core file generated in a different ma-
     jor FreeBSD version might show an error like this:

	   $ procstat mplayer.core
	   procstat: kinfo_proc structure size mismatch
	   procstat: procstat_getprocs()

SEE ALSO
     fstat(1),	 ps(1),  sockstat(1),  cap_enter(2),  cap_rights_limit(2),  ino-
     tify(2), mlock(2), mlockall(2), libprocstat(3), libxo(3), signal(3), xo_op-
     tions(7), ddb(4),	divert(4),  icmp(4),  ip(4),  sctp(4),	tcp(4),  udp(4),
     stack(9)

AUTHORS
     Robert N M Watson <rwatson@FreeBSD.org>.
     libxo(3) support was added by Allan Jude <allanjude@FreeBSD.org>.
     Juraj  Lutter  <juraj@lutter.sk> added the pargs, penv and pwdx functional-
     ity.

BUGS
     The display of open file or memory mapping pathnames is  implemented  using
     the  kernel's name cache.	If a file system does not use the name cache, or
     the path to a file is not in the cache, a path will not be displayed.

     procstat currently supports extracting data only from a  live  kernel,  and
     not from kernel crash dumps.

FreeBSD ports 15.quarterly	  July 16, 2025 		     PROCSTAT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=procstat&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help