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

FreeBSD Manual Pages

  
 
  

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 required 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 pre-
       vious  FreeBSD  1.1  procfs  implementation.   At  the  highest	level,
       processes themselves are	named, according to their process ids in deci-
       mal,  with  no  leading	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	opera-
	       tions.	Control	 commands  are	written	 as strings to the ctl
	       file.  The control 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
		       delivered, a breakpoint is hit, or the  target  process
		       exits.
	       step    single  step  the target	process, with no signal	deliv-
		       ery.
	       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  al-
		       lowed.

	       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
	       address	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 indicating infinity.

       status  The  process status.  This file is read-only and	returns	a sin-
	       gle 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
		   terminal, sldr if the process is a session leader,  noflags
		   if neither of the other two flags are set.
	          the	process	 start time in seconds and microseconds, comma
		   separated.
	          the user time in seconds and	microseconds, comma separated.
	          the system time in seconds and  microseconds,  comma	 sepa-
		   rated.
	          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
       primary	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
       provided	by Jan-Simon Pendry, and revamped later	by Mike	Pritchard.

GNU			       December	4, 2001			     PROCFS(5)

NAME | SYNOPSIS | DESCRIPTION | FILES | SEE ALSO | AUTHORS

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

home | help