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, un
- like the previous FreeBSD 1.1 procfs implementation. At the highest lev
- el, processes
themselves are named, according to their process ids in dec - imal, 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 en
- tries:
- Each directory contains several files:
- ctl a write-only file which supports a variety of con
- trol operations.
- 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 (whichneed 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 sig
- nal delivery.
wait wait for the target process to come to a - steady state
ready for debugging. The target processmust be in this
state before any of the other commands areallowed. - The string can also be the name of a signal, lower
- case and without the SIG prefix, in which case that signal is de
- livered to the
process (see sigaction(2)). - The procctl(8) utility can be used to clear trace
- points in a
stuck process. - dbregs The debug registers as defined by struct dbregs in
- dbregs is cur
- rently 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' sym
- bol 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
- 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 imple
- mented.
- notepg Used for sending signal to the process group. Not
- implemented.
- regs Allows read and write access to the process' regis
- ter set. This
- file contains a binary data structure struct regs
- defined in regs
can only be written when the process is stopped. - rlimit This is a read-only file containing the process cur
- rent and maxi
- mum limits. Each line is of the format rlimit
- current max, with
-1 indicating infinity. - status The process status. This file is read-only and re
- turns a single
- line containing multiple space-separated fields as
- follows:
- +o command name
+o process id
+o parent process id
+o process group id
+o session id
+o major,minor of the controlling terminal, or - -1,-1 if there is
no controlling terminal.
- +o a list of process flags: ctty if there is a con
- trolling ter
minal, sldr if the process is a session leader,noflags if
neither of the other two flags are set. - +o the process start time in seconds and microsec
- onds, comma
separated.
- +o the user time in seconds and microseconds, comma
- separated.
+o the system time in seconds and microseconds, - comma separated.
+o the wait channel message
+o the process credentials consisting of the effec - tive user id
and the list of groups (whose first member isthe effective
group id) all comma separated. - +o the hostname of the jail in which the process
- runs, or `-' to
indicate that the process is not running withina 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 informa - tion for pro
- cess pid.
- /proc/curproc directory containing process informa
- tion 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 rlim - it
/proc/curproc/status the process' current status
SEE ALSO
AUTHORS
- This manual page written by Garrett Wollman, based on the
- description
provided by Jan-Simon Pendry, and revamped later by Mike - Pritchard.
- BSD September 3, 2004