home | help
PROCFS(5)		       File Formats Manual		       PROCFS(5)

NAME
     procfs -- process file system

SYNOPSIS
     proc	     /proc   procfs  rw 0 0

DESCRIPTION
     The process file system, or procfs, implements a view of the system process
     table  inside the file system.  It is normally mounted on /proc, and is re-
     quired for the complete operation of programs such as ps(1) and w(1).

     The procfs provides a two-level view of process space, unlike the	previous
     FreeBSD  1.1  procfs implementation.  At the highest level, processes them-
     selves are named, according to their process ids in decimal, with no  lead-
     ing zeros.  There is also a special node called curproc which always refers
     to the process making the lookup request.

     Each node is a directory which contains the following entries:

     Each directory contains several files:

     ctl     a	write-only  file which supports a variety of control operations.
	     Control commands are written as strings to the ctl file.  The  con-
	     trol commands are:
	     attach  stops  the  target  process  and  arranges  for the sending
		     process to become the debug control process.
	     detach  continue execution of the target process and remove it from
		     control by the debug process (which need not be the sending
		     process).
	     run     continue running the target process until a signal  is  de-
		     livered, a breakpoint is hit, or the target process exits.
	     step    single step the target process, with no signal delivery.
	     wait    wait for the target process to come to a steady state ready
		     for  debugging.   The  target process must be in this state
		     before any of the other commands are allowed.

	     The string can also be the name of a signal, lower case and without
	     the SIG prefix, in which case  that  signal  is  delivered  to  the
	     process (see sigaction(2)).

     dbregs  The debug registers as defined by struct dbregs in <machine/reg.h>.
	     dbregs is currently only implemented on the i386 architecture.

     etype   The type of the executable referenced by the file entry.

     file    A	symbolic  link to the file from which the process text was read.
	     This can be used to gain access to the process' symbol table, or to
	     start another copy of the process.  If the file  cannot  be  found,
	     the link target is `unknown'.

     fpregs  The  floating  point  registers  as  defined  by  struct  fpregs in
	     <machine/reg.h>.  fpregs is only implemented on machines which have
	     distinct general purpose and floating point register sets.

     map     A map of the process' virtual memory.

     mem     The complete virtual memory image of the process.	Only  those  ad-
	     dress which exist in the process can be accessed.	Reads and writes
	     to this file modify the process.  Writes to the text segment remain
	     private to the process.

     note    Used for sending signals to the process.  Not implemented.

     notepg  Used for sending signal to the process group.  Not implemented.

     regs    Allows  read  and	write access to the process' register set.  This
	     file contains a  binary  data  structure  struct  regs  defined  in
	     <machine/reg.h>.	regs  can  only  be  written when the process is
	     stopped.

     rlimit  This is a read-only file containing the process current and maximum
	     limits.  Each line is of the format rlimit current max, with -1 in-
	     dicating infinity.

     status  The process status.  This file is read-only and  returns  a  single
	     line containing multiple space-separated fields as follows:

	     *	 command name
	     *	 process id
	     *	 parent process id
	     *	 process group id
	     *	 session id
	     *	 major,minor  of  the controlling terminal, or -1,-1 if there is
		 no controlling terminal.
	     *	 a list of process flags: ctty if there is a controlling  termi-
		 nal,  sldr  if the process is a session leader, noflags if nei-
		 ther of the other two flags are set.
	     *	 the process start time in seconds and microseconds, comma sepa-
		 rated.
	     *	 the user time in seconds and microseconds, comma separated.
	     *	 the system time in seconds and microseconds, comma separated.
	     *	 the wait channel message
	     *	 the process credentials consisting of the effective user id and
		 the list of groups (whose first member is the	effective  group
		 id) all comma separated.
	     *	 the  hostname	of the jail in which the process runs, or `-' to
		 indicate that the process is not running within a jail.

     In a normal debugging environment, where the target is fork/exec'd  by  the
     debugger, the debugger should fork and the child should stop itself (with a
     self-inflicted  SIGSTOP  for  example).  The parent should issue a wait and
     then an attach command via the appropriate ctl  file.   The  child  process
     will receive a SIGTRAP immediately after the call to exec (see execve(2)).

     Each  node  is owned by the process's user, and belongs to that user's pri-
     mary group, except for the mem node, which belongs to the kmem group.

FILES
     /proc		    normal mount point for the procfs.
     /proc/pid		    directory containing process information for process
			    pid.
     /proc/curproc	    directory containing  process  information	for  the
			    current process
     /proc/curproc/cmdline  the process executable name
     /proc/curproc/ctl	    used to send control messages to the process
     /proc/curproc/etype    executable type
     /proc/curproc/file     executable image
     /proc/curproc/fpregs   the process floating point register set
     /proc/curproc/map	    virtual memory map of the process
     /proc/curproc/mem	    the complete virtual address space of the process
     /proc/curproc/note     used for signaling the process
     /proc/curproc/notepg   used for signaling the process group
     /proc/curproc/regs     the process register set
     /proc/curproc/rlimit   the process current and maximum rlimit
     /proc/curproc/status   the process' current status

SEE ALSO
     mount(2), sigaction(2), unmount(2), mount_procfs(8), pseudofs(9)

AUTHORS
     This  manual page written by Garrett Wollman, based on the description pro-
     vided by Jan-Simon Pendry, and revamped later by Mike Pritchard.

FreeBSD 5.2.1			December 4, 2001		       PROCFS(5)

home | help