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

FreeBSD Manual Pages

  
 
  

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

NAME
       proc - process information pseudo-filesystem

DESCRIPTION
       /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
       changed.

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

       [number]
	      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.

	      cmdline
		     This holds	the complete command line for the process, un-
		     less  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 ap-
		     pear  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 in-
		     stance, 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.

	      environ
		     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
		     lilo(8).)

	      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  bi-
		     nary  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:

		     [device]:inode

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

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

	      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/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 de-
		     vice.  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
			    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  and
			    its	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 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
			    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 tex-
			    tual name.	(If you	have  an  up-to-date  /etc/ps-
			    database, 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.

		     devices
			    Information	about pci devices.  They  may  be  ac-
			    cessed through lspci(8) and	setpci(8).

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

       cpuinfo
	      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  bo-
	      gomips;  a system	constant that is calculated during kernel ini-
	      tialization.  SMP	machines have information for each CPU.

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

       execdomains
	      List of the execution domains (ABI personalities).

       fb     Frame buffer information when CONFIG_FB is defined during	kernel
	      compilation.

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

       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.

       iomem  I/O memory map in	Linux 2.4.

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

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

       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.

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

       modules
	      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
	      files.

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

	      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  ad-
		     dress' 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
		     agent.

	      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  ad-
		     dress"  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 ad-
		     dress" 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.

       partitions
	      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-de-
		     vice 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
		     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.

       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.

       stat   kernel/system statistics.	 Varies	with architecture.  Common en-
	      tries 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
		     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.

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

	      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 su-
		     per-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_un-
	      used, 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  en-
	      tries 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
	      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	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  in-
	      odes.   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-
	      state.

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

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

	      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  al-
	      lows  you	to.  The file super-nr contains	the number of filesys-
	      tems 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; re-
	      sume 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
	      exec.

	      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 darkstar.frop.org	has the	 host-
	      name "darkstar" 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.

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

	      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-
	      mentation/kmod.txt.

	      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, de-
	      fault_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 de-
	      fault_message_level.  minimum_console_loglevel  is  the  minimum
	      (highest)	 value	to  which  console_loglevel  can  be set.  de-
	      fault_console_loglevel   is   the	  default   value   for	  con-
	      sole_loglevel.

	      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
	      Documentation/initrd.txt.

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

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

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

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

       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 un-
	      derstanding.  ipc(5) provides further background on the informa-
	      tion 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).

       version
	      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

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

CONFORMS TO
       This roughly conforms to	a Linux	2.4.17 kernel.	Please update this  as
       necessary!

       Last updated for	Linux 2.4.17.

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.

				  2002-07-13			       PROC(5)

NAME | DESCRIPTION | SEE ALSO | CONFORMS TO | CAVEATS | ACKNOWLEDGEMENTS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=proc&sektion=5&manpath=Red+Hat+9>

home | help