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

FreeBSD Manual Pages


home | help
PROC(5)			   Linux Programmer's Manual		       PROC(5)

       proc - process information pseudo-filesystem

       /proc  is  a  pseudo-filesystem which is	used as	an interface to	kernel
       data structures rather than reading and interpreting  /dev/kmem.	  Most
       of  it  is  read-only,  but  some  files	 allow	kernel variables to be

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

	      There is a numerical subdirectory	for each running process;  the
	      subdirectory is named by the process ID.	Each contains the fol-
	      lowing pseudo-files and directories.

		     This holds	the complete command  line  for	 the  process,
		     unless  the whole process 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.

	      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 properly. In bash, you may use pwd -P.

		     This  file	contains the environment for the process.  The
		     entries are separated 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

	      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	 executed,  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:


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

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

	      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 output, can be  effectively
		     foiled this way, assuming that -i is the flag designating
		     an	input file and -o is the flag  designating  an	output
		     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

	      maps   A file containing the currently mapped memory regions and
		     their access permissions.

		     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/
	40013000-40015000 rw-p 00012000	03:0c 4165	 /lib/
	4001f000-40135000 r-xp 00000000	03:0c 45494	 /lib/
	40135000-4013e000 rw-p 00115000	03:0c 45494	 /lib/
	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.

	      mem    Via  the mem file one can access the pages	of a process's
		     memory through open(2), read(2), and fseek(3).

	      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.

	      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  cur-
			    rently  owns the tty that the process is connected

		     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

		     cminflt %lu
			    The	 number	 of  minor faults that the process and
			    its	children have made.

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

		     cmajflt %lu
			    The	number of major	faults that  the  process  and
			    its	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 and its
			    children have been scheduled in user mode.

		     cstime %ld
			    The	number of jiffies that this  process  and  its
			    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 sys-
			    tem	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 pur-
			    poses. 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 4,294,967,295).

		     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

		     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  tex-
			    tual   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
			    Processor number last executed on.

	      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

	      status Provides much of the information in stat and statm	in  an
		     format that's easier for humans to	parse.

       bus    Contains subdirectories for installed busses.

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

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

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

	      This  is	a  collection of CPU and system	architecture dependent
	      items, for each supported	architecture a	different  list.   Two
	      common   entries	are  processor	which  gives  CPU  number  and
	      bogomips;	a system constant that	is  calculated	during	kernel
	      initialization.  SMP machines have information for each CPU.

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

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

       driver Empty subdirectory.

	      List of the execution domains (ABI personalities).

       fb     Frame buffer information when CONFIG_FB is defined during	kernel

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

       ide    ide 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 format.

	      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.

       iomem  I/O memory map in	Linux 2.4.

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

       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.

       kmsg   This file	can be used instead of the syslog(2)  system  call  to
	      read  kernel log messages.  A process must have superuser	privi-
	      leges to read this file, and only	one process should make	use of
	      this facility or syslog(2) to read this file.

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

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

	      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 programs.

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

       malloc This file	is only	present	if CONFIGDEBUGMALLOC was defined  dur-
	      ing compilation.

	      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

       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).

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

       mtrr   Memory  Type  Range  Registers.	See  /usr/src/linux/Documenta-
	      tion/mtrr.txt for	details.

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

	      arp    This holds	an ASCII readable dump of the kernel ARP table
		     used for address resolutions. It will show	 both  dynami-
		     cally learned and pre-programmed ARP entries.  The	format

	IP address     HW type	 Flags	   HW address	       Mask   Device   0x1	 0x2	   00:50:BF:25:68:F3   *      eth0  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	physi-
	      cal layer	mapping	for that IP address if it is known.

	      dev    The dev pseudo-file contains network device status	infor-
		     mation.  This gives the number of received	and sent pack-
		     ets, 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

	      rarp   This file uses the	same format as the arp file  and  con-
		     tains  the	 current reverse mapping database used to pro-
		     vide rarp(8) reverse address lookup services. If RARP  is
		     not  configured  into  the	 kernel, this file will	not be

	      raw    Holds a dump of the RAW socket table. Much	of the	infor-
		     mation 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.

	      snmp   This file holds the ASCII data needed for the  IP,	 ICMP,
		     TCP,  and	UDP  management	 information bases for an snmp

	      tcp    Holds a dump of the TCP socket table. Much	of the	infor-
		     mation 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 use-
		     ful for debugging.	The uid	field holds the	 creator  euid
		     of	the socket.

	      udp    Holds  a dump of the UDP socket table. Much of the	infor-
		     mation 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

	      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 data-
	      gram sockets are not yet supported in the	kernel). 'St'  is  the
	      internal state of	the socket and Path is the bound path (if any)
	      of the socket.

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

       pci    This  is	a  listing of all PCI devices found during kernel ini-
	      tialization and their configuration.

       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  sub-
	      system or	switch certain features	on or off.

	      scsi   This  is  a listing of all	SCSI devices known to the ker-
		     nel. 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.

		     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 contains one file	per  registered	 host.
		     Every  host-file  is  named after the number the host was
		     assigned during initialization.

		     Reading these files will usually  show  driver  and  host
		     configuration, statistics etc.

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

       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 process.

	      Information about	kernel caches.	The columns are:
	      See slabinfo(5) for details.

       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  second  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

	      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.

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

       sys    This directory (present since 1.3.57) contains a number of files
	      and  subdirectories  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 sub-
	      directories abi, debug, dev, fs, kernel, net, proc,  sunrpc  and
	      vm that each contain more	files and subdirectories.

	      abi    This  directory may be empty.  On some systems, it	is not

	      debug  This directory may	be empty.

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

	      fs     This contains the subdirectory binfmt_misc	and files den-
		     try-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.

	      Documentation  for  the files in /proc/sys/binfmt_misc is	in the
	      kernel sources in	Documentation/binfmt_misc.txt.

	      The  file	 dentry-state	contains   six	 numbers,   nr_dentry,
	      nr_unused,   age_limit   (age  in	 seconds),  want_pages	(pages
	      requested	by system) and two dummy values.  nr_dentry  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.

	      The  file	dir-notify-enable 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.

	      The file dquot-max shows the maximum number of cached disk quota
	      entries.	On some	(2.4) systems, it is not present.  If the num-
	      ber 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.

	      The file dquot-nr	shows  the  number  of	allocated  disk	 quota
	      entries and the number of	free disk quota	entries.

	      The  file	 file-max is 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

	      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	file-max, be sure to increase inode-max	to 3-4
	      times the	new value of file-max, or you will run out of  inodes.

	      The (read-only) file file-nr gives the number of files presently
	      opened.  It contains three numbers: The number of	allocated file
	      handles,	the number of free file	handles	and the	maximum	number
	      of file handles.	The kernel allocates file handles dynamically,
	      but  it  doesn't	free  them  again.  If the number 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.

	      The  file	 inode-max  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.

	      The file inode-nr	contains the  first  two  values  from	inode-

	      The   file   inode-state	 contains  seven  numbers:  nr_inodes,
	      nr_free_inodes, preshrink	and four dummy values.	 nr_inodes  is
	      the  number  of  inodes  the  system has allocated.  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

	      The file lease-break-time	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.

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

	      The files	overflowgid and	overflowuid 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.

	      The file super-max 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.	The  file  super-nr  contains  the  number  of
	      filesystems currently mounted.

	      kernel This  directory  contains files acct, cad_pid, cap-bound,
		     core_uses_pid,  ctrl-alt-del,  dentry-state,  domainname,
		     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,  powersave-nap  (PowerPC  only),  printk,  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.

	      The  file	 acct  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.

	      The file cap-bound 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

	      The  file	core_uses_pid 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.

	      The file ctrl-alt-del 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 reaction	 to  a	Vulcan
	      Nerve Pinch (tm) will be an immediate reboot, without even sync-
	      ing its dirty buffers.  Note: when a program (like  dosemu)  has
	      the  keyboard  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.

	      The  files domainname and	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 has the host-
	      name "darkstar" and DNS (Internet	Domain Name Server) domainname
	      "", 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.

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

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

	      The  file	 modprobe is described by the kernel source file Docu-

	      The file msgmax is a system-wide limit  specifying  the  maximum
	      number  of  bytes	in a single message written on a System	V mes-
	      sage queue.

	      The file msgmni defines the system-wide limit on the  number  of
	      message  queue identifiers.  (This file is only present in Linux
	      2.4 onwards.)

	      The file msgmnb is 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.

	      The files	ostype and osrelease give substrings of	/proc/version.

	      The  files  overflowgid  and  overflowuid	 duplicate  the	 files
	      /proc/sys/fs/overflowgid and /proc/sys/fs/overflowuid.

	      The  file	 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 kernel should autoreboot
	      after this number	of seconds.  When you use the software	watch-
	      dog device driver, the recommended setting is 60.

	      The  file	powersave-nap (PowerPC only) contains a	flag.  If set,
	      Linux-PPC	will use the 'nap' mode	of powersaving,	otherwise  the
	      'doze' mode will be used.

	      The  four	 values	 in  the  file	printk	are  console_loglevel,
	      default_message_loglevel,	minimum_console_level and default_con-
	      sole_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.  minimum_console_loglevel is the  minimum
	      (highest)	  value	  to   which   console_loglevel	 can  be  set.
	      default_console_loglevel	is  the	  default   value   for	  con-

	      The directory random contains various parameters controlling the
	      operation	of the file /dev/random.

	      The file real-root-dev is	documented in the kernel  source  file

	      The  file	 reboot-cmd  (Sparc only) 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?

	      The  file	 rtsig-max  can	 be used to tune the maximum number of
	      POSIX realtime (queued) signals that can be outstanding  in  the

	      The  file	 rtsig-nr shows	the number POSIX realtime signals cur-
	      rently queued.

	      The file sem (available in Linux 2.4 onwards) 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.

	      SEMNI   A	system-wide limit on the maximum number	 of  semaphore

	      The  file	 sg-big-buff 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.

	      The file shmall contains the system-wide limit on	the total num-
	      ber of pages of System V shared memory.

	      The file shmmax 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 memory segments up to 1Gb	are  now  sup-
	      ported in	the kernel.  This value	defaults to SHMMAX.

	      The  file	 shmmni	(available in Linux 2.4	and onwards) specifies
	      the system-wide maximum number of	System V  shared  memory  seg-
	      ments that can be	created.

	      The file 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.

	      The file zero-paged (PowerPC only) contains a flag. When enabled
	      (non-zero), Linux-PPC will pre-zero pages	in the idle loop, pos-
	      sibly speeding up	get_free_pages.

	      The    net This directory	contains networking stuff.

	      proc   This directory may	be empty.

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

	      vm     This  directory contains files for	memory management tun-
		     ing, buffer and cache management.

	      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
	      understanding.  ipc(5) provides further background on the	infor-
	      mation shown by these files.

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

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

	      This string identifies the kernel	version	that is	currently run-
	      ning.    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

       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),  ifconfig(8),  lsmod(8),	lspci(8),  netstat(8),
       procinfo(8), route(8) /usr/src/linux/Documentation/filesystems/proc.txt

       This  roughly conforms to a Linux 2.4.17	kernel.	 Please	update this as

       Last updated for	Linux 2.4.17.

       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.

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

				  2002-07-13			       PROC(5)


Want to link to this manual page? Use this URL:

home | help