proc - phpMan

Command: man perldoc info search(apropos)  


PROC(5)                    Linux Programmer’s Manual                   PROC(5)



NAME
       proc - process information pseudo-filesystem


DESCRIPTION
       The  proc filesystem is a pseudo-filesystem which is used as an interface to kernel
       data structures. It is commonly mounted at /proc.  Most of  it  is  read-only,  but
       some files allow kernel variables to be changed.

       The following outline gives a quick tour through the /proc hierarchy.

       /proc/[number]
              There is a numerical subdirectory for each running process; the subdirectory
              is named by the process ID.  Each contains the  following  pseudo-files  and
              directories.

       /proc/[number]/cmdline
              This  holds the complete command line for the process, unless the whole pro-
              cess has been swapped out, or unless the process is a zombie.  In either  of
              these  later  cases, there is nothing in this file: i.e. a read on this file
              will return 0 characters.  The command line arguments appear in this file as
              a  set  of  null-separated  strings, with a further null byte after the last
              string.

       /proc/[number]/cwd
              This is a link to the current working directory of the process.  To find out
              the cwd of process 20, for instance, you can do this:

              cd /proc/20/cwd; /bin/pwd

              Note that the pwd command is often a shell builtin, and might not work prop-
              erly. In bash, you may use pwd -P.

       /proc/[number]/environ
              This file contains the environment for the process.  The entries  are  sepa-
              rated  by  null  characters,  and  there may be a null character at the end.
              Thus, to print out the environment of process 1, you would do:

              (cat /proc/1/environ; echo) | tr "\000" "\n"

              (For a reason why one should want to do this, see lilo(8).)

       /proc/[number]/exe
              Under Linux 2.2 and 2.4 exe is a symbolic link containing  the  actual  path
              name  of  the  executed  command.  The exe symbolic link can be dereferenced
              normally - attempting to open exe will open the executable.   You  can  even
              type /proc/[number]/exe to run another copy of the same process as [number].

              Under Linux 2.0 and earlier exe is a pointer to the binary  which  was  exe-
              cuted, and appears as a symbolic link. A readlink(2) call on the exe special
              file under Linux 2.0 returns a string in the format:

              [device]:inode

              For example, [0301]:1502 would be inode 1502 on device major 03  (IDE,  MFM,
              etc. drives) minor 01 (first partition on the first drive).

              find(1) with the -inum option can be used to locate the file.

       /proc/[number]/fd
              This  is a subdirectory containing one entry for each file which the process
              has open, named by its file descriptor, and which is a symbolic link to  the
              actual  file (as the exe entry does).  Thus, 0 is standard input, 1 standard
              output, 2 standard error, etc.

              Programs that will take a filename, but will not take  the  standard  input,
              and  which  write to a file, but will not send their output to standard out-
              put, can be effectively foiled this way, assuming that -i is the flag desig-
              nating an input file and -o is the flag designating an output file:
              foobar -i /proc/self/fd/0 -o /proc/self/fd/1 ...
              and  you  have  a working filter.  Note that this will not work for programs
              that seek on their files, as the files in the fd directory are not seekable.

              /proc/self/fd/N  is  approximately  the  same  as /dev/fd/N in some UNIX and
              UNIX-like systems.  Most Linux MAKEDEV scripts symbolically link /dev/fd  to
              /proc/self/fd, in fact.

       /proc/[number]/maps
              A  file containing the currently mapped memory regions and their access per-
              missions.

              The format is:

        address           perms offset  dev   inode      pathname
        08048000-08056000 r-xp 00000000 03:0c 64593      /usr/sbin/gpm
        08056000-08058000 rw-p 0000d000 03:0c 64593      /usr/sbin/gpm
        08058000-0805b000 rwxp 00000000 00:00 0
        40000000-40013000 r-xp 00000000 03:0c 4165       /lib/ld-2.2.4.so
        40013000-40015000 rw-p 00012000 03:0c 4165       /lib/ld-2.2.4.so
        4001f000-40135000 r-xp 00000000 03:0c 45494      /lib/libc-2.2.4.so
        40135000-4013e000 rw-p 00115000 03:0c 45494      /lib/libc-2.2.4.so
        4013e000-40142000 rw-p 00000000 00:00 0
        bffff000-c0000000 rwxp 00000000 00:00 0

              where address is the address space in the process that it occupies, perms is
              a set of permissions:

                   r = read
                   w = write
                   x = execute
                   s = shared
                   p = private (copy on write)

              offset   is   the   offset   into  the  file/whatever,  dev  is  the  device
              (major:minor), and inode is the inode on that device.  0 indicates  that  no
              inode is associated with the memory region, as the case would be with bss.

              Under Linux 2.0 there is no field giving pathname.

       /proc/[number]/mem
              Via  the  mem  file  one  can access the pages of a process’s memory through
              open(2), read(2), and fseek(3).

       /proc/[number]/root
              Unix and Linux support the idea of a per-process root of the filesystem, set
              by  the  chroot(2)  system  call.   Root points to the file system root, and
              behaves as exe, fd/*, etc. do.

       /proc/[number]/stat
              Status information about the process.  This is used by ps(1).  It is defined
              in /usr/src/linux/fs/proc/array.c.

              The fields, in order, with their proper scanf(3) format specifiers, are:

              pid %d The process id.

              comm %s
                     The  filename  of  the  executable,  in parentheses.  This is visible
                     whether or not the executable is swapped out.

              state %c
                     One character from the string "RSDZTW"  where  R  is  running,  S  is
                     sleeping  in  an  interruptible wait, D is waiting in uninterruptible
                     disk sleep, Z is zombie, T is traced or stopped (on a signal), and  W
                     is paging.

              ppid %d
                     The PID of the parent.

              pgrp %d
                     The process group ID of the process.

              session %d
                     The session ID of the process.

              tty_nr %d
                     The tty the process uses.

              tpgid %d
                     The process group ID of the process which currently owns the tty that
                     the process is connected to.

              flags %lu
                     The flags of the process.  The math bit is decimal 4, and the  traced
                     bit is decimal 10.

              minflt %lu
                     The  number  of  minor  faults  the  process  has made which have not
                     required loading a memory page from disk.

              cminflt %lu
                     The number of minor faults that  the  process’s  waited-for  children
                     have made.

              majflt %lu
                     The  number  of major faults the process has made which have required
                     loading a memory page from disk.

              cmajflt %lu
                     The number of major faults that  the  process’s  waited-for  children
                     have made.

              utime %lu
                     The  number  of  jiffies that this process has been scheduled in user
                     mode.

              stime %lu
                     The number of jiffies that this process has been scheduled in  kernel
                     mode.

              cutime %ld
                     The  number  of  jiffies that this process’s waited-for children have
                     been scheduled in user mode. (See also times(2).)

              cstime %ld
                     The number of jiffies that this  process’  waited-for  children  have
                     been scheduled in kernel mode.

              priority %ld
                     The  standard  nice value, plus fifteen.  The value is never negative
                     in the kernel.

              nice %ld
                     The nice value ranges from 19 (nicest) to -19 (not nice to others).

              0 %ld  This value is hard coded to 0 as a placeholder for a removed field.

              itrealvalue %ld
                     The time in jiffies before the next SIGALRM is sent  to  the  process
                     due to an interval timer.

              starttime %lu
                     The time in jiffies the process started after system boot.

              vsize %lu
                     Virtual memory size in bytes.

              rss %ld
                     Resident  Set  Size:  number of pages the process has in real memory,
                     minus 3 for administrative purposes. This is  just  the  pages  which
                     count  towards  text,  data,  or  stack space.  This does not include
                     pages which have not been demand-loaded in, or which are swapped out.

              rlim %lu
                     Current  limit in bytes on the rss of the process (usually 4294967295
                     on i386).

              startcode %lu
                     The address above which program text can run.

              endcode %lu
                     The address below which program text can run.

              startstack %lu
                     The address of the start of the stack.

              kstkesp %lu
                     The current value of esp (stack pointer),  as  found  in  the  kernel
                     stack page for the process.

              kstkeip %lu
                     The current EIP (instruction pointer).

              signal %lu
                     The bitmap of pending signals (usually 0).

              blocked %lu
                     The bitmap of blocked signals (usually 0, 2 for shells).

              sigignore %lu
                     The bitmap of ignored signals.

              sigcatch %lu
                     The bitmap of catched signals.

              wchan %lu
                     This  is  the  "channel"  in which the process is waiting.  It is the
                     address of a system call, and can be looked up in a namelist  if  you
                     need  a  textual  name.   (If you have an up-to-date /etc/psdatabase,
                     then try ps -l to see the WCHAN field in action.)

              nswap %lu
                     Number of pages swapped - not maintained.

              cnswap %lu
                     Cumulative nswap for child processes.

              exit_signal %d
                     Signal to be sent to parent when we die.

              processor %d
                     CPU number last executed on.

       /proc/[number]/statm
              Provides information about memory status in pages.  The columns are:
               size       total program size
               resident   resident set size
               share      shared pages
               trs        text (code)
               drs        data/stack
               lrs        library
               dt         dirty pages

       /proc/[number]/status
              Provides much of the  information  in  /proc/[number]/stat  and  /proc/[num-
              ber]/statm in a format that’s easier for humans to parse.

       /proc/apm
              Advanced power management version and battery information when CONFIG_APM is
              defined at kernel compilation time.

       /proc/bus
              Contains subdirectories for installed busses.

       /proc/bus/pccard
              Subdirectory for pcmcia devices when CONFIG_PCMCIA is set at kernel compila-
              tion time.

       /proc/bus/pccard/drivers

       /proc/bus/pci
              Contains  various bus subdirectories and pseudo-files containing information
              about pci busses, installed devices, and  device  drivers.   Some  of  these
              files are not ASCII.

       /proc/bus/pci/devices
              Information  about  pci  devices.  They may be accessed through lspci(8) and
              setpci(8).

       /proc/cmdline
              Arguments passed to the Linux kernel at boot time.  Often done  via  a  boot
              manager such as lilo(1).

       /proc/cpuinfo
              This  is  a  collection  of CPU and system architecture dependent items, for
              each supported architecture a different list.  Two common entries  are  pro-
              cessor which gives CPU number and bogomips; a system constant that is calcu-
              lated during kernel initialization.  SMP machines have information for  each
              CPU.

       /proc/devices
              Text  listing  of  major  numbers  and  device  groups.  This can be used by
              MAKEDEV scripts for consistency with the kernel.

       /proc/dma
              This is a list of the registered ISA DMA (direct memory access) channels  in
              use.

       /proc/driver
              Empty subdirectory.

       /proc/execdomains
              List of the execution domains (ABI personalities).

       /proc/fb
              Frame  buffer  information  when CONFIG_FB is defined during kernel compila-
              tion.

       /proc/filesystems
              A text listing of the filesystems  which  were  compiled  into  the  kernel.
              Incidentally,  this  is used by mount(1) to cycle through different filesys-
              tems when none is specified.

       /proc/fs
              Empty subdirectory.

       /proc/ide
              This directory exists on systems with the ide bus.   There  are  directories
              for each ide channel and attached device.  Files include:

              cache              buffer size in KB
              capacity           number of sectors
              driver             driver version
              geometry           physical and logical geometry
              identify           in hexidecimal
              media              media type
              model              manufacturer’s model number
              settings           drive settings
              smart_thresholds   in hexidecimal
              smart_values       in hexidecimal

              The hdparm(8) utility provides access to this information in a friendly for-
              mat.

       /proc/interrupts
              This is used to record the number of interrupts per each IRQ on  (at  least)
              the i386 architechure.  Very easy to read formatting, done in ASCII.

       /proc/iomem
              I/O memory map in Linux 2.4.

       /proc/ioports
              This is a list of currently registered Input-Output port regions that are in
              use.

       /proc/kcore
              This file represents the physical memory of the system and is stored in  the
              ELF  core  file  format.   With  this  pseudo-file, and an unstripped kernel
              (/usr/src/linux/vmlinux) binary, GDB can be  used  to  examine  the  current
              state of any kernel data structures.

              The  total length of the file is the size of physical memory (RAM) plus 4KB.

       /proc/kmsg
              This file can be used instead of the syslog(2) system call  to  read  kernel
              messages.   A  process must have superuser privileges to read this file, and
              only one process should read this file.  This file should not be read  if  a
              syslog  process  is running which uses the syslog(2) system call facility to
              log kernel messages.

              Information in this file is retrieved with the dmesg(8) program.

       /proc/ksyms
              This holds the kernel exported symbol definitions  used  by  the  modules(X)
              tools to dynamically link and bind loadable modules.

       /proc/loadavg
              The  load average numbers give the number of jobs in the run queue (state R)
              or waiting for disk I/O (state D) averaged over 1, 5, and 15 minutes.   They
              are  the  same as the load average numbers given by uptime(1) and other pro-
              grams.

       /proc/locks
              This file shows current  file  locks  (flock(2)  and  fcntl(2))  and  leases
              (fcntl(2)).

       /proc/malloc
              This  file  is only present if CONFIGDEBUGMALLOC was defined during compila-
              tion.

       /proc/meminfo
              This is used by free(1) to report the amount of free and used  memory  (both
              physical  and  swap)  on the system as well as the shared memory and buffers
              used by the kernel.

              It is in the same format as free(1), except in bytes rather than KB.

       /proc/mounts
              This is a list of all the file systems currently mounted on the system.  The
              format of this file is documented in fstab(5).

       /proc/modules
              A  text  list  of the modules that have been loaded by the system.  See also
              lsmod(8).

       /proc/mtrr
              Memory Type Range Registers.  See /usr/src/linux/Documentation/mtrr.txt  for
              details.

       /proc/net
              various  net  pseudo-files, all of which give the status of some part of the
              networking layer.  These files contain ASCII structures and are,  therefore,
              readable  with  cat.   However,  the standard netstat(8) suite provides much
              cleaner access to these files.

       /proc/net/arp
              This holds an ASCII readable dump of the kernel ARP table used  for  address
              resolutions.  It  will  show both dynamically learned and pre-programmed ARP
              entries.  The format is:

        IP address     HW type   Flags     HW address          Mask   Device
        192.168.0.50   0x1       0x2       00:50:BF:25:68:F3   *      eth0
        192.168.0.250  0x1       0xc       00:00:00:00:00:00   *      eth0

              Here ’IP address’ is the IPv4 address of the machine and the  ’HW  type’  is
              the  hardware  type  of the address from RFC 826. The flags are the internal
              flags of the ARP structure (as defined in  /usr/include/linux/if_arp.h)  and
              the ’HW address’ is the data link layer mapping for that IP address if it is
              known.

       /proc/net/dev
              The dev pseudo-file contains network device status information.  This  gives
              the number of received and sent packets, the number of errors and collisions
              and other basic statistics. These are used by  the  ifconfig(8)  program  to
              report device status.  The format is:

 Inter-|   Receive                                                |  Transmit
  face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
     lo: 2776770   11307    0    0    0     0          0         0  2776770   11307    0    0    0     0       0          0
   eth0: 1215645    2751    0    0    0     0          0         0  1782404    4324    0    0    0   427       0          0
   ppp0: 1622270    5552    1    0    0     0          0         0   354130    5669    0    0    0     0       0          0
   tap0:    7714      81    0    0    0     0          0         0     7714      81    0    0    0     0       0          0

       /proc/net/dev_mcast
              Defined in /usr/src/linux/net/core/dev_mcast.c:
                   indx ifterface_name  dmi_u dmi_g dmi_address
                   2    eth0            1     0     01005e000001
                   3    eth1            1     0     01005e000001
                   4    eth2            1     0     01005e000001

       /proc/net/igmp
              Internet       Group       Management       Protocol.        Defined      in
              /usr/src/linux/net/core/igmp.c.

       /proc/net/rarp
              This file uses the same format as the arp  file  and  contains  the  current
              reverse mapping database used to provide rarp(8) reverse address lookup ser-
              vices. If RARP is not configured into the kernel,  this  file  will  not  be
              present.

       /proc/net/raw
              Holds  a dump of the RAW socket table. Much of the information is not of use
              apart from debugging. The ’sl’ value is the kernel hash slot for the socket,
              the  ’local  address’  is the local address and protocol number pair."St" is
              the internal status of the socket. The "tx_queue"  and  "rx_queue"  are  the
              outgoing and incoming data queue in terms of kernel memory usage.  The "tr",
              "tm->when", and "rexmits" fields are not used by RAW.  The uid  field  holds
              the creator euid of the socket.

       /proc/net/snmp
              This file holds the ASCII data needed for the IP, ICMP, TCP, and UDP manage-
              ment information bases for an snmp agent.

       /proc/net/tcp
              Holds a dump of the TCP socket table. Much of the information is not of  use
              apart from debugging. The "sl" value is the kernel hash slot for the socket,
              the "local address" is the local address and port number pair.  The  "remote
              address"  is the remote address and port number pair (if connected). ’St’ is
              the internal status of the socket.  The ’tx_queue’ and  ’rx_queue’  are  the
              outgoing and incoming data queue in terms of kernel memory usage.  The "tr",
              "tm->when", and "rexmits" fields hold internal  information  of  the  kernel
              socket state and are only useful for debugging. The uid field holds the cre-
              ator euid of the socket.

       /proc/net/udp
              Holds a dump of the UDP socket table. Much of the information is not of  use
              apart from debugging. The "sl" value is the kernel hash slot for the socket,
              the "local address" is the local address and port number pair.  The  "remote
              address"  is the remote address and port number pair (if connected). "St" is
              the internal status of the socket.  The "tx_queue" and  "rx_queue"  are  the
              outgoing  and incoming data queue in terms of kernel memory usage. The "tr",
              "tm->when", and "rexmits" fields are not used by UDP. The  uid  field  holds
              the creator euid of the socket.  The format is:

 sl  local_address rem_address   st tx_queue rx_queue tr rexmits  tm->when uid
  1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0
  1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0
  1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0

       /proc/net/unix
              Lists  the  UNIX  domain sockets present within the system and their status.
              The format is:
              Num RefCount Protocol Flags    Type St Path
               0: 00000002 00000000 00000000 0001 03
               1: 00000001 00000000 00010000 0001 01 /dev/printer

              Here ’Num’ is the kernel table slot number,  ’RefCount’  is  the  number  of
              users of the socket, ’Protocol’ is currently always 0, ’Flags’ represent the
              internal kernel flags holding the status of the socket. Currently,  type  is
              always  ’1’  (Unix domain datagram sockets are not yet supported in the ker-
              nel). ’St’ is the internal state of the socket and Path is  the  bound  path
              (if any) of the socket.

       /proc/partitions
              Contains  major  and  minor  numbers  of each partition as well as number of
              blocks and partition name.

       /proc/pci
              This is a listing of all PCI devices found during kernel initialization  and
              their configuration.

       /proc/scsi
              A  directory  with  the  scsi midlevel pseudo-file and various SCSI lowlevel
              driver directories, which contain a file for each SCSI host in this  system,
              all  of  which give the status of some part of the SCSI IO subsystem.  These
              files contain ASCII structures and are, therefore, readable with cat.

              You can also write to some of the files  to  reconfigure  the  subsystem  or
              switch certain features on or off.

       /proc/scsi/scsi
              This  is  a  listing of all SCSI devices known to the kernel. The listing is
              similar to the one seen during bootup.  scsi  currently  supports  only  the
              add-single-device  command  which  allows root to add a hotplugged device to
              the list of known devices.

              An echo â€â€™scsi add-single-device 1 0 5 0â€â€™ > /proc/scsi/scsi will  cause  host
              scsi1  to  scan  on  SCSI  channel 0 for a device on ID 5 LUN 0. If there is
              already a device known on this address or the address is invalid,  an  error
              will be returned.

       /proc/scsi/[drivername]
              [drivername] can currently be NCR53c7xx, aha152x, aha1542, aha1740, aic7xxx,
              buslogic, eata_dma, eata_pio, fdomain, in2000,  pas16,  qlogic,  scsi_debug,
              seagate,  t128,  u15-24f,  ultrastore, or wd7000.  These directories show up
              for all drivers that registered at least one SCSI HBA. Every directory  con-
              tains  one file per registered host. Every host-file is named after the num-
              ber the host was assigned during initialization.

              Reading these files will usually show driver and host configuration, statis-
              tics etc.

              Writing  to  these  files  allows  different things on different hosts.  For
              example, with the latency and nolatency commands, root can switch on and off
              command latency measurement code in the eata_dma driver. With the lockup and
              unlock commands, root can control bus lockups simulated  by  the  scsi_debug
              driver.

       /proc/self
              This  directory refers to the process accessing the /proc filesystem, and is
              identical to the /proc directory named by the process ID of  the  same  pro-
              cess.

       /proc/slabinfo
              Information about kernel caches.  The columns are:
              cache-name
              num-active-objs
              total-objs
              object-size
              num-active-slabs
              total-slabs
              num-pages-per-slab
              See slabinfo(5) for details.

       /proc/stat
              kernel/system   statistics.    Varies  with  architecture.   Common  entries
              include:

              cpu  3357 0 4313 1362393
                     The number of jiffies (1/100ths of a second) that the system spent in
                     user  mode,  user mode with low priority (nice), system mode, and the
                     idle task, respectively.  The last value should be 100 times the sec-
                     ond entry in the uptime pseudo-file.

              page 5741 1808
                     The  number  of  pages  the  system paged in and the number that were
                     paged out (from disk).

              swap 1 0
                     The number of swap pages that have been brought in and out.

              intr 1462898
                     The number of interrupts received from the system boot.

              disk_io: (2,0):(31,30,5764,1,2) (3,0):...
                     (major,minor):(noinfo,    read_io_ops,    blks_read,    write_io_ops,
                     blks_written)

              ctxt 115315
                     The number of context switches that the system underwent.

              btime 769041601
                     boot time, in seconds since the epoch (January 1, 1970).

              processes 86031
                     Number of forks since boot.

       /proc/swaps
              Swap areas in use.  See also swapon(8).

       /proc/sys
              This  directory (present since 1.3.57) contains a number of files and subdi-
              rectories corresponding to kernel variables.  These variables  can  be  read
              and  sometimes modified using the proc file system, and the sysctl(2) system
              call. Presently, there are subdirectories abi, debug, dev, fs, kernel,  net,
              proc,  rxrpc, sunrpc and vm that each contain more files and subdirectories.

       /proc/sys/abi
              This directory may contain files with application  binary  information.   On
              some systems, it is not present.

       /proc/sys/debug
              This directory may be empty.

       /proc/sys/dev
              This directory contains device specific information (eg dev/cdrom/info).  On
              some systems, it may be empty.

       /proc/sys/fs
              This contains the subdirectory  binfmt_misc  and  files  dentry-state,  dir-
              notify-enable,  dquot-nr,  file-max,  file-nr,  inode-max,  inode-nr, inode-
              state, lease-break-time, leases-enable, overflowgid,  overflowuid  super-max
              and super-nr with function fairly clear from the name.

       /proc/sys/fs/binfmt_misc
              Documentation for files in this directory can in the kernel sources in Docu-
              mentation/binfmt_misc.txt.

       /proc/sys/fs/dentry-state
              This file contains six numbers, nr_dentry, nr_unused, age_limit (age in sec-
              onds), want_pages (pages requested by system) and two dummy values.  nr_den-
              try seems to be 0 all the time.  nr_unused seems to be the number of  unused
              dentries.  age_limit is the age in seconds after which dcache entries can be
              reclaimed when memory is short and want_pages is nonzero when the kernel has
              called shrink_dcache_pages() and the dcache isn’t pruned yet.

       /proc/sys/fs/dir-notify-enable
              This  file  can be used to disable or enable the dnotify interface described
              in fcntl(2) on a system-wide basis.  A value of 0 in this file disables  the
              interface, and a value of 1 enables it.

       /proc/sys/fs/dquot-max
              This  file  shows  the maximum number of cached disk quota entries.  On some
              (2.4) systems, it is not present.  If the number of free cached disk  quotas
              is  very  low and you have some awesome number of simultaneous system users,
              you might want to raise the limit.

       /proc/sys/fs/dquot-nr
              This file shows the number of allocated disk quota entries and the number of
              free disk quota entries.

       /proc/sys/fs/file-max
              This  file  defines  a system-wide limit on the number of open files for all
              processes.  (See also setrlimit(2), which can be used by a  process  to  set
              the  per-process  limit, RLIMIT_NOFILE, on the number of files it may open.)
              If you get lots of error messages about running out  of  file  handles,  try
              increasing this value:

              echo 100000 > /proc/sys/fs/file-max

              The  kernel constant NR_OPEN imposes an upper limit on the value that may be
              placed in file-max.

              If   you   increase   /proc/sys/fs/file-max,    be    sure    to    increase
              /proc/sys/fs/inode-max  to 3-4 times the new value of /proc/sys/fs/file-max,
              or you will run out of inodes.

       /proc/sys/fs/file-nr
              This (read-only) file gives the number of files presently opened.   It  con-
              tains  three  numbers:  The  number of allocated file handles, the number of
              free file handles and the maximum number of file handles.  The kernel  allo-
              cates file handles dynamically, but it doesn’t free them again.  If the num-
              ber of allocated files is close to the

              maximum, you should consider increasing the maximum.   When  the  number  of
              free  file handles is large, you’ve encountered a peak in your usage of file
              handles and you probably don’t need to increase the maximum.

       /proc/sys/fs/inode-max
              This file contains the maximum number of in-memory inodes.   On  some  (2.4)
              systems,  it  may not be present. This value should be 3-4 times larger than
              the value in file-max, since stdin, stdout and network sockets also need  an
              inode  to  handle  them.  When  you regularly run out of inodes, you need to
              increase this value.

       /proc/sys/fs/inode-nr
              This file contains the first two values from inode-state.

       /proc/sys/fs/inode-state
              This file contains seven numbers: nr_inodes, nr_free_inodes,  preshrink  and
              four  dummy  values.  nr_inodes is the number of inodes the system has allo-
              cated.  This can be slightly more than  inode-max  because  Linux  allocates
              them  one  pageful  at a time.  nr_free_inodes represents the number of free
              inodes.  preshrink is nonzero when the nr_inodes > inode-max and the  system
              needs to prune the inode list instead of allocating more.

       /proc/sys/fs/lease-break-time
              This  file  specifies  the  grace period that the kernel grants to a process
              holding a file lease (fcntl(2)) after it has sent a signal to  that  process
              notifying it that another process is waiting to open the file.  If the lease
              holder does not remove or downgrade the lease within this grace period,  the
              kernel forcibly breaks the lease.

       /proc/sys/fs/leases-enable
              This  file can be used to enable or disable file leases (fcntl(2)) on a sys-
              tem-wide basis.  If this file contains the value 0, leases are disabled.   A
              non-zero value enables leases.

       /proc/sys/fs/overflowgid and /proc/sys/fs/overflowuid
              These  files  allow  you  to change the value of the fixed UID and GID.  The
              default is 65534.  Some filesystems  only  support  16-bit  UIDs  and  GIDs,
              although  in  Linux UIDs and GIDs are 32 bits. When one of these filesystems
              is mounted with writes enabled, any UID or GID that would  exceed  65535  is
              translated to the overflow value before being written to disk.

       /proc/sys/fs/super-max
              This  file  controls the maximum number of superblocks, and thus the maximum
              number of mounted filesystems the kernel can have. You only need to increase
              super-max  if  you  need to mount more filesystems than the current value in
              super-max allows you to.

       /proc/sys/fs/super-nr
              This file contains the number of filesystems currently mounted.

       /proc/sys/kernel
              This  directory  contains  files  acct,  cad_pid,  cap-bound,  core_pattern,
              core_uses_pid,  ctrl-alt-del,  dentry-state,  domainname, hotplug, hostname,
              htab-reclaim  (PowerPC  only),  java-appletviewer  (binfmt_java,  obsolete),
              java-interpreter  (binfmt_java,  obsolete),  l2cr  (PowerPC only), modprobe,
              msgmax, msgmnb, msgmni, osrelease, ostype, overflowgid, overflowuid,  panic,
              panic_on_oops,  pid_max,  powersave-nap (PowerPC only), printk, pty, random,
              real-root-dev, reboot-cmd (SPARC only), rtsig-max,  rtsig-nr,  sem,  sg-big-
              buff, shmall, shmmax, shmmni, sysrq, tainted, threads-max, version and zero-
              paged (PowerPC only) with function fairly clear from the name.

       /proc/sys/kernel/acct
              This file contains three numbers: highwater,  lowwater  and  frequency.   If
              BSD-style  process accounting is enabled these values control its behaviour.
              If free space on filesystem where the log lives goes below lowwater  percent
              accounting  suspends.  If free space gets above highwater percent accounting
              resumes.  Frequency determines how often the kernel  checks  the  amount  of
              free  space (value is in seconds). Default values are 4, 2 and 30.  That is,
              suspend accounting if <= 2% of space is free; resume it if >= 4% of space is
              free;  consider information about amount of free space valid for 30 seconds.

       /proc/sys/kernel/cap-bound
              This file holds the value of the kernel capability bounding  set  (expressed
              as  a  signed  decimal  number).  This set is ANDed against the capabilities
              permitted to a process during exec.

       /proc/sys/kernel/core_pattern
              This file (new in Linux 2.5) provides finer control over the form of a  core
              filename  than  the  obsolete  /proc/sys/kernel/core_uses_pid file described
              below.  The name for a core file is controlled by  defining  a  template  in
              /proc/sys/kernel/core_pattern.   The template can contain % specifiers which
              are substituted by the following values when a core file is created:

                %%  A single % character
                %p  PID of dumped process
                %u  real UID of dumped process
                %g  real GID of dumped process
                %s  number of signal causing dump
                %t  time of dump (secs since 0:00h, 1 Jan 1970)
                %h  hostname (same as the ’nodename’
                    returned by uname(2))
                %e  executable filename

              A single % at the end of the template is dropped from the core filename,  as
              is  the combination of a % followed by any character other than those listed
              above.  All other characters in the template become a literal  part  of  the
              core filename.  The maximum size of the resulting core filename is 64 bytes.
              The default value in this file is "core".  For  backward  compatibility,  if
              /proc/sys/kernel/core_pattern  does  not  include  "%p"  and  /proc/sys/ker-
              nel/core_uses_pid is non-zero, then .PID will be appended to the core  file-
              name.

       /proc/sys/kernel/core_uses_pid
              This  file  can be used control the naming of a core dump file on Linux 2.4.
              If this file contains the value 0, then a core dump  file  is  simply  named
              core.   If  this  file  contains  a  non-zero value, then the core dump file
              includes the process ID in a name of the form core.PID.

       /proc/sys/kernel/ctrl-alt-del
              This file controls the handling of Ctrl-Alt-Del from the keyboard.  When the
              value  in  this  file  is 0, Ctrl-Alt-Del is trapped and sent to the init(1)
              program to handle a graceful restart.  When the value is > 0, Linux’s  reac-
              tion  to a Vulcan Nerve Pinch (tm) will be an immediate reboot, without even
              syncing its dirty buffers.  Note: when a program (like dosemu) has the  key-
              board  in  ’raw’ mode, the ctrl-alt-del is intercepted by the program before
              it ever reaches the kernel tty layer, and it’s up to the program  to  decide
              what to do with it.

       /proc/sys/kernel/hotplug
              This file contains the path for the hotplug policy agent.  The default value
              in this file "/sbin/hotplug".

       /proc/sys/kernel/domainname and /proc/sys/kernel/hostname
              can be used to set the NIS/YP domainname and the hostname  of  your  box  in
              exactly the same way as the commands domainname and hostname, i.e.:

              # echo "darkstar" > /proc/sys/kernel/hostname
              # echo "mydomain" > /proc/sys/kernel/domainname

              has the same effect as

              # hostname "darkstar"
              # domainname "mydomain"

              Note,  however,  that  the classic darkstar.frop.org has the hostname "dark-
              star" and DNS (Internet Domain Name Server) domainname "frop.org", not to be
              confused  with  the  NIS  (Network Information Service) or YP (Yellow Pages)
              domainname. These two domain names are in general different. For a  detailed
              discussion see the hostname(1) man page.

       /proc/sys/kernel/htab-reclaim
              (PowerPC  only)  If  this  file is set to a non-zero value, the PowerPC htab
              (see kernel file Documentation/powerpc/ppc_htab.txt) is pruned each time the
              system hits the idle loop.

       /proc/sys/kernel/l2cr
              (PowerPC  only)  This  file contains a flag that controls the L2 cache of G3
              processor boards. If 0, the cache is disabled. Enabled if nonzero.

       /proc/sys/kernel/modprobe
              This file is described by the kernel source file Documentation/kmod.txt.

       /proc/sys/kernel/msgmax
              This file defines a system-wide limit specifying the maximum number of bytes
              in a single message written on a System V message queue.

       /proc/sys/kernel/msgmni
              This file defines the system-wide limit on the number of message queue iden-
              tifiers.  (This file is only present in Linux 2.4 onwards.)

       /proc/sys/kernel/msgmnb
              This file defines a system-wide paramter used to initialise  the  msg_qbytes
              setting  for  subsequenly  created  message  queues.  The msg_qbytes setting
              specifies the maximum number of bytes that may be  written  to  the  message
              queue.

       /proc/sys/kernel/ostype and /proc/sys/kernel/osrelease
              These files give substrings of /proc/version.

       /proc/sys/kernel/overflowgid and /proc/sys/kernel/overflowuid
              These    files    duplicate    the    files   /proc/sys/fs/overflowgid   and
              /proc/sys/fs/overflowuid.

       /proc/sys/kernel/panic
              gives read/write access to the kernel variable panic_timeout.   If  this  is
              zero, the kernel will loop on a panic; if nonzero it indicates that the ker-
              nel should autoreboot after this number of seconds.  When you use the  soft-
              ware watchdog device driver, the recommended setting is 60.

       /proc/sys/kernel/panic_on_oops
              This file (new in Linux 2.5) controls the kernel’s behaviour when an oops or
              BUG is encountered.  If this file contains 0, then the system tries to  con-
              tinue operation.  If it contains 1, then the system delays a few seconds (to
              give klogd time to  record  the  oops  output)  and  then  panics.   If  the
              /proc/sys/kernel/panic  file  is  also  non-zero  then  the  machine will be
              rebooted.

       /proc/sys/kernel/pid_max
              This file (new in Linux 2.5) specifies the value at which PIDs  wrap  around
              (i.e.,  the  value  in  this file is one greater than the maximum PID).  The
              default value for this file, 32768, results in the same range of PIDs as  on
              earlier  kernels.  The value in this file can be set to any value up to 2^22
              (PID_MAX_LIMIT, approximately 4 million).

       /proc/sys/kernel/powersave-nap (PowerPC only)
              This file contains a flag.  If set, Linux-PPC will use  the  ’nap’  mode  of
              powersaving, otherwise the ’doze’ mode will be used.

       /proc/sys/kernel/printk
              The four values in this file are console_loglevel, default_message_loglevel,
              minimum_console_level and default_console_loglevel.  These values  influence
              printk() behavior when printing or logging error messages. See syslog(2) for
              more info on the different loglevels.  Messages with a higher priority  than
              console_loglevel  will  be  printed  to  the  console.   Messages without an
              explicit priority will be printed with priority default_message_level.  min-
              imum_console_loglevel   is   the  minimum  (highest)  value  to  which  con-
              sole_loglevel can be set.  default_console_loglevel is the default value for
              console_loglevel.

       /proc/sys/kernel/pty (since Linux 2.6.4)
              This  directory contains two files relating to the number of Unix 98 pseudo-
              terminals (see pts(4)) on the system.

       /proc/sys/kernel/pty/max
              This file defines the maximum number of pseudo-terminals.

       /proc/sys/kernel/pty/nr
              This read-only file indicates how many  pseudo-terminals  are  currently  in
              use.

       /proc/sys/kernel/random
              This  directory contains various parameters controlling the operation of the
              file /dev/random.

       /proc/sys/kernel/real-root-dev
              This file is documented in the kernel source file  Documentation/initrd.txt.

       /proc/sys/kernel/reboot-cmd (Sparc only)
              This  file seems to be a way to give an argument to the SPARC ROM/Flash boot
              loader. Maybe to tell it what to do after rebooting?

       /proc/sys/kernel/rtsig-max
              This file can be used to tune the maximum number of POSIX realtime  (queued)
              signals that can be outstanding in the system.

       /proc/sys/kernel/rtsig-nr
              This file shows the number POSIX realtime signals currently queued.

       /proc/sys/kernel/sem (since Linux 2.4)
              This  file  contains  4 numbers defining limits for System V IPC semaphores.
              These fields are, in order:

              SEMMSL  The maximum semaphores per semaphore set.

              SEMMNS  A system-wide limit on the number of  semaphores  in  all  semaphore
                      sets.

              SEMOPM  The maximum number of operations that may be specified in a semop(2)
                      call.

              SEMMNI  A system-wide limit on the maximum number of semaphore  identifiers.

       /proc/sys/kernel/sg-big-buff
              This  file shows the size of the generic SCSI device (sg) buffer.  You can’t
              tune it just yet, but you  could  change  it  on  compile  time  by  editing
              include/scsi/sg.h  and  changing  the  value of SG_BIG_BUFF.  However, there
              shouldn’t be any reason to change this value.

       /proc/sys/kernel/shmall
              This file contains the system-wide limit on the total  number  of  pages  of
              System V shared memory.

       /proc/sys/kernel/shmmax
              This  file  can  be  used to query and set the run time limit on the maximum
              (System V IPC) shared memory segment size that can be created.  Shared  mem-
              ory segments up to 1Gb are now supported in the kernel.  This value defaults
              to SHMMAX.

       /proc/sys/kernel/shmmni
              (available in Linux 2.4 and onwards) This  file  specifies  the  system-wide
              maximum number of System V shared memory segments that can be created.

       /proc/sys/kernel/version
              contains a string like:

              #5 Wed Feb 25 21:49:24 MET 1998.TP

              The ’#5’ means that this is the fifth kernel built from this source base and
              the date behind it indicates the time the kernel was built.

       /proc/sys/kernel/zero-paged (PowerPC only)
              This file contains a flag. When enabled (non-zero), Linux-PPC will  pre-zero
              pages in the idle loop, possibly speeding up get_free_pages.

       /proc/sys/net
              This directory contains networking stuff.

       /proc/sys/proc
              This directory may be empty.

       /proc/sys/sunrpc
              This  directory  supports  Sun remote procedure call for network file system
              (NFS).  On some systems, it is not present.

       /proc/sys/vm
              This directory contains files for memory management tuning, buffer and cache
              management.

       /proc/sysvipc
              Subdirectory containing the pseudo-files msg, sem and shm.  These files list
              the System V Interprocess Communication (IPC) objects (respectively: message
              queues,  semaphores,  and shared memory) that currently exist on the system,
              providing similar information to that available via  ipcs(1).   These  files
              have  headers  and  are  formatted (one IPC object per line) for easy under-
              standing.  ipc(5) provides further background on the  information  shown  by
              these files.

       /proc/tty
              Subdirectory  containing the psuedo-files and subdirectories for tty drivers
              and line disciplines.

       /proc/uptime
              This file contains two numbers: the uptime of the system (seconds), and  the
              amount of time spent in idle process (seconds).

       /proc/version
              This  string  identifies  the  kernel version that is currently running.  It
              includes  the  contents   of   /proc/sys/ostype,   /proc/sys/osrelease   and
              /proc/sys/version.  For example:
            Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994


SEE ALSO
       cat(1),  find(1),  free(1),  mount(1), ps(1), tr(1), uptime(1), chroot(2), mmap(2),
       readlink(2), syslog(2), slabinfo(5), hier(7), arp(8), dmesg(8),  hdparm(8),  ifcon-
       fig(8), lsmod(8), lspci(8), netstat(8), procinfo(8), route(8), /usr/src/linux/Docu-
       mentation/filesystems/proc.txt

CAVEATS
       Note that many strings (i.e., the environment and command line) are in the internal
       format,  with  sub-fields  terminated by NUL bytes, so you may find that things are
       more readable if you use od -c or tr "\000" "\n" to read them.  Alternatively, echo
       ‘cat <file>‘ works well.

       This  manual page is incomplete, possibly inaccurate, and is the kind of thing that
       needs to be updated very often.

ACKNOWLEDGEMENTS
       The material on /proc/sys/fs and /proc/sys/kernel is closely based on kernel source
       documentation files written by Rik van Riel.




                                  2003-05-27                           PROC(5)

Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache/1.3.41 (Unix) PHP/5.2.5 mod_perl/1.30 mod_gzip/1.3.26.1a
Under GNU General Public License
2009-01-10 09:13 @38.103.63.58 CrawledBy CCBot/1.0 (+http://www.commoncrawl.org/bot.html)
Valid XHTML 1.0!Valid CSS!