mirror of https://github.com/mkerrisk/man-pages
2672 lines
78 KiB
Groff
2672 lines
78 KiB
Groff
.\" Copyright (C) 1994, 1995 by Daniel Quinlan (quinlan@yggdrasil.com)
|
|
.\" and Copyright (C) 2002-2008 Michael Kerrisk <mtk.manpages@gmail.com>
|
|
.\" with networking additions from Alan Cox (A.Cox@swansea.ac.uk)
|
|
.\" and scsi additions from Michael Neuffer (neuffer@mail.uni-mainz.de)
|
|
.\" and sysctl additions from Andries Brouwer (aeb@cwi.nl)
|
|
.\" and System V IPC (as well as various other) additions from
|
|
.\" Michael Kerrisk <mtk.manpages@gmail.com>
|
|
.\"
|
|
.\" This is free documentation; you can redistribute it and/or
|
|
.\" modify it under the terms of the GNU General Public License as
|
|
.\" published by the Free Software Foundation; either version 2 of
|
|
.\" the License, or (at your option) any later version.
|
|
.\"
|
|
.\" The GNU General Public License's references to "object code"
|
|
.\" and "executables" are to be interpreted as the output of any
|
|
.\" document formatting or typesetting system, including
|
|
.\" intermediate and printed output.
|
|
.\"
|
|
.\" This manual is distributed in the hope that it will be useful,
|
|
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
.\" GNU General Public License for more details.
|
|
.\"
|
|
.\" You should have received a copy of the GNU General Public
|
|
.\" License along with this manual; if not, write to the Free
|
|
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
|
|
.\" USA.
|
|
.\"
|
|
.\" Modified 1995-05-17 by faith@cs.unc.edu
|
|
.\" Minor changes by aeb and Marty Leisner (leisner@sdsp.mc.xerox.com).
|
|
.\" Modified 1996-04-13, 1996-07-22 by aeb@cwi.nl
|
|
.\" Modified 2001-12-16 by rwhron@earthlink.net
|
|
.\" Modified 2002-07-13 by jbelton@shaw.ca
|
|
.\" Modified 2002-07-22, 2003-05-27, 2004-04-06, 2004-05-25
|
|
.\" by Michael Kerrisk <mtk.manpages@gmail.com>
|
|
.\" 2004-11-17, mtk -- updated notes on /proc/loadavg
|
|
.\" 2004-12-01, mtk, rtsig-max and rtsig-nr went away in 2.6.8
|
|
.\" 2004-12-14, mtk, updated 'statm', and fixed error in order of list
|
|
.\" 2005-05-12, mtk, updated 'stat'
|
|
.\" 2005-07-13, mtk, added /proc/sys/fs/mqueue/*
|
|
.\" 2005-09-16, mtk, Added /proc/sys/fs/suid_dumpable
|
|
.\" 2005-09-19, mtk, added /proc/zoneinfo
|
|
.\" 2005-03-01, mtk, moved /proc/sys/fs/mqueue/* material to mq_overview.7.
|
|
.\" 2008-06-05, mtk, Added /proc/[pid]/oom_score, /proc/[pid]/oom_adj,
|
|
.\" /proc/[pid]/limits, /proc/[pid]/mountinfo, /proc/[pid]/mountstats,
|
|
.\" and /proc/[pid]/fdinfo/*.
|
|
.\" 2008-06-19, mtk, Documented /proc/[pid]/status.
|
|
.\" 2008-07-15, mtk, added /proc/config.gz
|
|
.\"
|
|
.\" FIXME 2.6.13 seems to have /proc/vmcore implemented
|
|
.\" in the source code, but there is no option available under
|
|
.\" 'make xconfig'; eventually this should be fixed, and then info
|
|
.\" from the patch-2.6.13 and change log could be used to write an
|
|
.\" entry in this man page.
|
|
.\" Needs CONFIG_VMCORE
|
|
.\"
|
|
.\" FIXME cross check against Documentation/filesystems/proc.txt
|
|
.\" to see what information could be imported from that file
|
|
.\" into this file.
|
|
.\"
|
|
.TH PROC 5 2010-06-19 "Linux" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
proc \- process information pseudo-file system
|
|
.SH DESCRIPTION
|
|
The
|
|
.I proc
|
|
file system is a pseudo-file system which is used as an interface to
|
|
kernel data structures.
|
|
It is commonly mounted at
|
|
.IR /proc .
|
|
Most of it is read-only, but some files allow kernel variables to be
|
|
changed.
|
|
.LP
|
|
The following outline gives a quick tour through the
|
|
.I /proc
|
|
hierarchy.
|
|
.PD 1
|
|
.TP
|
|
.I /proc/[pid]
|
|
There is a numerical subdirectory for each running process; the
|
|
subdirectory is named by the process ID.
|
|
Each such subdirectory contains the following
|
|
pseudo-files and directories.
|
|
.\" FIXME Describe /proc/[pid]/attr and
|
|
.\" /proc/[pid]/task/[tid]/attr
|
|
.\" This is a directory
|
|
.\" Added in ???
|
|
.\" CONFIG_SECURITY
|
|
.\"
|
|
.TP
|
|
.IR /proc/[pid]/auxv " (since 2.6.0-test7)"
|
|
This contains the contents of the ELF interpreter information passed
|
|
to the process at exec time.
|
|
The format is one \fIunsigned long\fP ID
|
|
plus one \fIunsigned long\fP value for each entry.
|
|
The last entry contains two zeros.
|
|
.\" FIXME Describe /proc/[pid]/cgroup and
|
|
.\" /proc/[pid]/task/[tid]/cgroup
|
|
.\" Info in Documentation/cgroups.txt
|
|
.\" Added in 2.6.24
|
|
.\" CONFIG_CGROUPS
|
|
.\"
|
|
.\" FIXME Describe /proc/[pid]/clear_refs
|
|
.\" Added in 2.6.22
|
|
.\" "Clears page referenced bits shown in smaps output"
|
|
.\" write-only
|
|
.\" CONFIG_PROC_PAGE_MONITOR
|
|
.TP
|
|
.I /proc/[pid]/cmdline
|
|
This holds the complete command line for the process,
|
|
unless the process is a zombie.
|
|
.\" In 2.3.26, this also used to be true if the process was swapped out.
|
|
In the latter case, there is nothing in this file:
|
|
that is, a read on this file will return 0 characters.
|
|
The command-line arguments appear in this file as a set of
|
|
strings separated by null bytes (\(aq\\0\(aq),
|
|
with a further null byte after the last string.
|
|
.TP
|
|
.IR /proc/[pid]/coredump_filter " (since kernel 2.6.23)"
|
|
See
|
|
.BR core (5).
|
|
.TP
|
|
.IR /proc/[pid]/cpuset " (since kernel 2.6.12)"
|
|
.\" and/proc/[pid]/task/[tid]/cpuset
|
|
See
|
|
.BR cpuset (7).
|
|
.TP
|
|
.I /proc/[pid]/cwd
|
|
This is a symbolic link to the current working directory of the process.
|
|
To find out the current working directory of process 20,
|
|
for instance, you can do this:
|
|
|
|
.in +4n
|
|
.nf
|
|
.RB "$" " cd /proc/20/cwd; /bin/pwd"
|
|
.fi
|
|
.in
|
|
|
|
Note that the
|
|
.I pwd
|
|
command is often a shell built-in, and might
|
|
not work properly.
|
|
In
|
|
.BR bash (1),
|
|
you may use
|
|
.IR "pwd\ \-P" .
|
|
|
|
.\" The following was still true as at kernel 2.6.13
|
|
In a multithreaded process, the contents of this symbolic link
|
|
are not available if the main thread has already terminated
|
|
(typically by calling
|
|
.BR pthread_exit (3)).
|
|
.TP
|
|
.I /proc/[pid]/environ
|
|
This file contains the environment for the process.
|
|
The entries are separated by null bytes (\(aq\\0\(aq),
|
|
and there may be a null byte at the end.
|
|
Thus, to print out the environment of process 1, you would do:
|
|
.in +4n
|
|
.nf
|
|
|
|
.ft CW
|
|
.RB "$" " (cat /proc/1/environ; echo) | tr \(aq\e000\(aq \(aq\en\(aq"
|
|
.fi
|
|
.ft P
|
|
.in
|
|
.TP
|
|
.I /proc/[pid]/exe
|
|
Under Linux 2.2 and later, this file is a symbolic link
|
|
containing the actual pathname of the executed command.
|
|
This symbolic link can be dereferenced normally; attempting to open
|
|
it will open the executable.
|
|
You can even type
|
|
.I /proc/[pid]/exe
|
|
to run another copy of the same executable as is being run by
|
|
process [pid].
|
|
.\" The following was still true as at kernel 2.6.13
|
|
In a multithreaded process, the contents of this symbolic link
|
|
are not available if the main thread has already terminated
|
|
(typically by calling
|
|
.BR pthread_exit (3)).
|
|
|
|
Under Linux 2.0 and earlier
|
|
.I /proc/[pid]/exe
|
|
is a pointer to the binary which was executed,
|
|
and appears as a symbolic link.
|
|
A
|
|
.BR readlink (2)
|
|
call on this 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).
|
|
|
|
.BR find (1)
|
|
with the
|
|
.I \-inum
|
|
option can be used to locate the file.
|
|
.TP
|
|
.I /proc/[pid]/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.
|
|
Thus, 0 is standard input, 1 standard output, 2 standard error, etc.
|
|
|
|
.\" The following was still true as at kernel 2.6.13
|
|
In a multithreaded process, the contents of this directory
|
|
are not available if the main thread has already terminated
|
|
(typically by calling
|
|
.BR pthread_exit (3)).
|
|
|
|
Programs that will take a filename as a command-line argument,
|
|
but will not take input from standard input if no argument is supplied,
|
|
or that write to a file named as a command-line argument,
|
|
but will not send their output to standard output
|
|
if no argument is supplied, can nevertheless be made to use
|
|
standard input or standard out using
|
|
.IR /proc/[pid]/fd .
|
|
For example, assuming that
|
|
.I \-i
|
|
is the flag designating an input file and
|
|
.I \-o
|
|
is the flag designating an output file:
|
|
.in +4n
|
|
.nf
|
|
|
|
.RB "$" " foobar \-i /proc/self/fd/0 \-o /proc/self/fd/1 ..."
|
|
.fi
|
|
.in
|
|
|
|
and you have a working filter.
|
|
.\" The following is not true in my tests (MTK):
|
|
.\" Note that this will not work for
|
|
.\" programs that seek on their files, as the files in the fd directory
|
|
.\" are not seekable.
|
|
|
|
.I /proc/self/fd/N
|
|
is approximately the same as
|
|
.I /dev/fd/N
|
|
in some Unix and Unix-like systems.
|
|
Most Linux MAKEDEV scripts symbolically link
|
|
.I /dev/fd
|
|
to
|
|
.IR /proc/self/fd ,
|
|
in fact.
|
|
|
|
Most systems provide symbolic links
|
|
.IR /dev/stdin ,
|
|
.IR /dev/stdout ,
|
|
and
|
|
.IR /dev/stderr ,
|
|
which respectively link to the files
|
|
.IR 0 ,
|
|
.IR 1 ,
|
|
and
|
|
.IR 2
|
|
in
|
|
.IR /proc/self/fd .
|
|
Thus the example command above could be written as:
|
|
.in +4n
|
|
.nf
|
|
|
|
.RB "$" " foobar \-i /dev/stdin \-o /dev/stdout ..."
|
|
.fi
|
|
.in
|
|
.\" FIXME Describe /proc/[pid]/loginuid
|
|
.\" Added in 2.6.11; updating requires CAP_AUDIT_CONTROL
|
|
.\" CONFIG_AUDITSYSCALL
|
|
.TP
|
|
.IR /proc/[pid]/fdinfo/ " (since kernel 2.6.22)"
|
|
This is a subdirectory containing one entry for each file which the
|
|
process has open, named by its file descriptor.
|
|
The contents of each file can be read to obtain information
|
|
about the corresponding file descriptor, for example:
|
|
.in +4n
|
|
.nf
|
|
|
|
.RB "$" " cat /proc/12015/fdinfo/4"
|
|
pos: 1000
|
|
flags: 01002002
|
|
.fi
|
|
.in
|
|
|
|
The
|
|
.I pos
|
|
field is a decimal number showing the current file offset.
|
|
The
|
|
.I flags
|
|
field is an octal number that displays the
|
|
file access mode and file status flags (see
|
|
.BR open (2)).
|
|
|
|
The files in this directory are readable only by the owner of the process.
|
|
.\" FIXME document /proc/[pid]/io
|
|
.\" .TP
|
|
.\" .IR /proc/[pid]/io " (since kernel 2.6.20)"
|
|
.TP
|
|
.IR /proc/[pid]/limits " (since kernel 2.6.24)"
|
|
This file displays the soft limit, hard limit, and units of measurement
|
|
for each of the process's resource limits (see
|
|
.BR getrlimit (2)).
|
|
The file is protected to only allow reading by the real UID of the process.
|
|
.TP
|
|
.I /proc/[pid]/maps
|
|
A file containing the currently mapped memory regions and their access
|
|
permissions.
|
|
|
|
The format is:
|
|
|
|
.nf
|
|
.ft CW
|
|
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
|
|
.ft
|
|
.fi
|
|
|
|
where "address" is the address space in the process that it occupies,
|
|
"perms" is a set of permissions:
|
|
|
|
.nf
|
|
.in +5
|
|
r = read
|
|
w = write
|
|
x = execute
|
|
s = shared
|
|
p = private (copy on write)
|
|
.fi
|
|
.in
|
|
|
|
"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 (uninitialized data).
|
|
|
|
Under Linux 2.0 there is no field giving pathname.
|
|
.TP
|
|
.I /proc/[pid]/mem
|
|
This file can be used to access the pages of a process's memory through
|
|
.BR open (2),
|
|
.BR read (2),
|
|
and
|
|
.BR lseek (2).
|
|
.TP
|
|
.IR /proc/[pid]/mountinfo " (since Linux 2.6.26)"
|
|
.\" This info adapted from Documentation/filesystems/proc.txt
|
|
This file contains information about mount points.
|
|
It contains lines of the form:
|
|
.nf
|
|
.ft CW
|
|
|
|
36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue
|
|
(1)(2)(3) (4) (5) (6) (7) (8) (9) (10) (11)
|
|
.ft
|
|
.fi
|
|
.IP
|
|
The numbers in parentheses are labels for the descriptions below:
|
|
.RS 7
|
|
.TP 5
|
|
(1)
|
|
mount ID: unique identifier of the mount (may be reused after
|
|
.BR umount (2)).
|
|
.TP
|
|
(2)
|
|
parent ID: ID of parent mount (or of self for the top of the mount tree).
|
|
.TP
|
|
(3)
|
|
major:minor: value of
|
|
.I st_dev
|
|
for files on file system (see
|
|
.BR stat (2)).
|
|
.TP
|
|
(4)
|
|
root: root of the mount within the file system.
|
|
.TP
|
|
(5)
|
|
mount point: mount point relative to the process's root.
|
|
.TP
|
|
(6)
|
|
mount options: per-mount options.
|
|
.TP
|
|
(7)
|
|
optional fields: zero or more fields of the form "tag[:value]".
|
|
.TP
|
|
(8)
|
|
separator: marks the end of the optional fields.
|
|
.TP
|
|
(9)
|
|
file system type: name of file system in the form "type[.subtype]".
|
|
.TP
|
|
(10)
|
|
mount source: file system-specific information or "none".
|
|
.TP
|
|
(11)
|
|
super options: per-super block options.
|
|
.RE
|
|
.IP
|
|
Parsers should ignore all unrecognized optional fields.
|
|
Currently the possible optional fields are:
|
|
.RS 12
|
|
.TP 18
|
|
shared:X
|
|
mount is shared in peer group X
|
|
.TP
|
|
master:X
|
|
mount is slave to peer group X
|
|
.TP
|
|
propagate_from:X
|
|
mount is slave and receives propagation from peer group X (*)
|
|
.TP
|
|
unbindable
|
|
mount is unbindable
|
|
.RE
|
|
.IP
|
|
(*) X is the closest dominant peer group under the process's root.
|
|
If X is the immediate master of the mount,
|
|
or if there is no dominant peer group under the same root,
|
|
then only the "master:X" field is present
|
|
and not the "propagate_from:X" field.
|
|
|
|
For more information on mount propagation see:
|
|
.I Documentation/filesystems/sharedsubtree.txt
|
|
in the kernel source tree.
|
|
.TP
|
|
.IR /proc/[pid]/mounts " (since Linux 2.4.19)"
|
|
This is a list of all the file systems currently mounted in the
|
|
process's mount namespace.
|
|
The format of this file is documented in
|
|
.BR fstab (5).
|
|
Since kernel version 2.6.15, this file is pollable:
|
|
after opening the file for reading, a change in this file
|
|
(i.e., a file system mount or unmount) causes
|
|
.BR select (2)
|
|
to mark the file descriptor as readable, and
|
|
.BR poll (2)
|
|
and
|
|
.BR epoll_wait (2)
|
|
mark the file as having an error condition.
|
|
.TP
|
|
.IR /proc/[pid]/mountstats " (since Linux 2.6.17)"
|
|
This file exports information (statistics, configuration information)
|
|
about the mount points in the process's name space.
|
|
Lines in this file have the form:
|
|
.nf
|
|
|
|
device /dev/sda7 mounted on /home with fstype ext3 [statistics]
|
|
( 1 ) ( 2 ) (3 ) (4)
|
|
.fi
|
|
.IP
|
|
The fields in each line are:
|
|
.RS 7
|
|
.TP 5
|
|
(1)
|
|
The name of the mounted device
|
|
(or "nodevice" if there is no corresponding device).
|
|
.TP
|
|
(2)
|
|
The mount point within the file system tree.
|
|
.TP
|
|
(3)
|
|
The file system type.
|
|
.TP
|
|
(4)
|
|
Optional statistics and configuration information.
|
|
Currently (as at Linux 2.6.26), only NFS file systems export
|
|
information via this field.
|
|
.RE
|
|
.IP
|
|
This file is only readable by the owner of the process.
|
|
.TP
|
|
.IR /proc/[pid]/numa_maps " (since Linux 2.6.14)"
|
|
See
|
|
.BR numa (7).
|
|
.TP
|
|
.IR /proc/[pid]/oom_adj " (since Linux 2.6.11)"
|
|
This file can be used to adjust the score used to select which process
|
|
should be killed in an out-of-memory (OOM) situation.
|
|
The kernel uses this value for a bit-shift operation of the process's
|
|
.IR oom_score
|
|
value:
|
|
valid values are in the range \-16 to +15,
|
|
plus the special value \-17,
|
|
which disables OOM-killing altogether for this process.
|
|
A positive score increases the likelihood of this
|
|
process being killed by the OOM-killer;
|
|
a negative score decreases the likelihood.
|
|
The default value for this file is 0;
|
|
a new process inherits its parent's
|
|
.I oom_adj
|
|
setting.
|
|
A process must be privileged
|
|
.RB ( CAP_SYS_RESOURCE )
|
|
to update this file.
|
|
.TP
|
|
.IR /proc/[pid]/oom_score " (since Linux 2.6.11)"
|
|
.\" See mm/oom_kill.c::badness() in the 2.6.25 sources
|
|
This file displays the current score that the kernel gives to
|
|
this process for the purpose of selecting a process
|
|
for the OOM-killer.
|
|
A higher score means that the process is more likely to be
|
|
selected by the OOM-killer.
|
|
The basis for this score is the amount of memory used by the process,
|
|
with increases (+) or decreases (\-) for factors including:
|
|
.\" See mm/oom_kill.c::badness() in the 2.6.25 sources
|
|
.RS
|
|
.IP * 2
|
|
whether the process creates a lot of children using
|
|
.BR fork (2)
|
|
(+);
|
|
.IP *
|
|
whether the process has been running a long time,
|
|
or has used a lot of CPU time (\-);
|
|
.IP *
|
|
whether the process has a low nice value (i.e., > 0) (+);
|
|
.IP *
|
|
whether the process is privileged (\-); and
|
|
.\" More precisely, if it has CAP_SYS_ADMIN or CAP_SYS_RESOURCE
|
|
.IP *
|
|
whether the process is making direct hardware access (\-).
|
|
.\" More precisely, if it has CAP_SYS_RAWIO
|
|
.RE
|
|
.IP
|
|
The
|
|
.I oom_score
|
|
also reflects the bit-shift adjustment specified by the
|
|
.I oom_adj
|
|
setting for the process.
|
|
.\" FIXME Describe /proc/[pid]/pagemap
|
|
.\" Added in 2.6.25
|
|
.\" CONFIG_PROC_PAGE_MONITOR
|
|
.TP
|
|
.I /proc/[pid]/root
|
|
Unix and Linux support the idea of a per-process root of the
|
|
file system, set by the
|
|
.BR chroot (2)
|
|
system call.
|
|
This file is a symbolic link that points to the process's
|
|
root directory, and behaves as exe, fd/*, etc. do.
|
|
|
|
.\" The following was still true as at kernel 2.6.13
|
|
In a multithreaded process, the contents of this symbolic link
|
|
are not available if the main thread has already terminated
|
|
(typically by calling
|
|
.BR pthread_exit (3)).
|
|
.\" FIXME Describe /proc/[pid]/seccomp
|
|
.\" Added in 2.6.12
|
|
.\" FIXME Describe /proc/[pid]/sessionid
|
|
.\" Added in 2.6.25; read-only; only readable by real UID
|
|
.\" CONFIG_AUDITSYSCALL
|
|
.\" FIXME Describe /proc/[pid]/sched
|
|
.\" Added in 2.6.23
|
|
.\" CONFIG_SCHED_DEBUG, and additional fields if CONFIG_SCHEDSTATS
|
|
.\" Displays various scheduling parameters
|
|
.\" This file can be written, to reset stats
|
|
.\" FIXME Describe /proc/[pid]/schedstats and
|
|
.\" /proc/[pid]/task/[tid]/schedstats
|
|
.\" Added in 2.6.9
|
|
.\" CONFIG_SCHEDSTATS
|
|
.TP
|
|
.IR /proc/[pid]/smaps " (since Linux 2.6.14)"
|
|
.\" CONFIG_PROC_PAGE_MONITOR
|
|
This file shows memory consumption for each of the process's mappings.
|
|
For each of mappings there is a series of lines such as the following:
|
|
.in +4n
|
|
.nf
|
|
|
|
08048000-080bc000 r-xp 00000000 03:02 13130 /bin/bash
|
|
Size: 464 kB
|
|
Rss: 424 kB
|
|
Shared_Clean: 424 kB
|
|
Shared_Dirty: 0 kB
|
|
Private_Clean: 0 kB
|
|
Private_Dirty: 0 kB
|
|
|
|
.fi
|
|
.in
|
|
The first of these lines shows the same information as is displayed
|
|
for the mapping in
|
|
.IR /proc/[pid]/maps .
|
|
The remaining lines show the size of the mapping,
|
|
the amount of the mapping that is currently resident in RAM,
|
|
the number of clean and dirty shared pages in the mapping,
|
|
and the number of clean and dirty private pages in the mapping.
|
|
|
|
This file is only present if the
|
|
.B CONFIG_MMU
|
|
kernel configuration
|
|
option is enabled.
|
|
.TP
|
|
.I /proc/[pid]/stat
|
|
Status information about the process.
|
|
This is used by
|
|
.BR ps (1).
|
|
It is defined in
|
|
.IR /usr/src/linux/fs/proc/array.c "."
|
|
|
|
The fields, in order, with their proper
|
|
.BR scanf (3)
|
|
format specifiers, are:
|
|
.RS
|
|
.TP 12
|
|
\fIpid\fP %d
|
|
The process ID.
|
|
.TP
|
|
\fIcomm\fP %s
|
|
The filename of the executable, in parentheses.
|
|
This is visible whether or not the executable is swapped out.
|
|
.TP
|
|
\fIstate\fP %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.
|
|
.TP
|
|
\fIppid\fP %d
|
|
The PID of the parent.
|
|
.TP
|
|
\fIpgrp\fP %d
|
|
The process group ID of the process.
|
|
.TP
|
|
\fIsession\fP %d
|
|
The session ID of the process.
|
|
.TP
|
|
\fItty_nr\fP %d
|
|
The controlling terminal of the process.
|
|
(The minor device number is contained in the combination of bits
|
|
31 to 20 and 7 to 0;
|
|
the major device number is in bits 15 to 8.)
|
|
.TP
|
|
\fItpgid\fP %d
|
|
.\" This field and following, up to and including wchan added 0.99.1
|
|
The ID of the foreground process group of the controlling
|
|
terminal of the process.
|
|
.TP
|
|
\fIflags\fP %u (%lu before Linux 2.6.22)
|
|
The kernel flags word of the process.
|
|
For bit meanings,
|
|
see the PF_* defines in
|
|
.IR <linux/sched.h> .
|
|
Details depend on the kernel version.
|
|
.TP
|
|
\fIminflt\fP %lu
|
|
The number of minor faults the process has made which have not
|
|
required loading a memory page from disk.
|
|
.TP
|
|
.\" field 11
|
|
\fIcminflt\fP %lu
|
|
The number of minor faults that the process's
|
|
waited-for children have made.
|
|
.TP
|
|
\fImajflt\fP %lu
|
|
The number of major faults the process has made which have
|
|
required loading a memory page from disk.
|
|
.TP
|
|
\fIcmajflt\fP %lu
|
|
The number of major faults that the process's
|
|
waited-for children have made.
|
|
.TP
|
|
\fIutime\fP %lu
|
|
Amount of time that this process has been scheduled in user mode,
|
|
measured in clock ticks (divide by
|
|
.IR sysconf(_SC_CLK_TCK) .
|
|
This includes guest time, \fIguest_time\fP
|
|
(time spent running a virtual CPU, see below),
|
|
so that applications that are not aware of the guest time field
|
|
do not lose that time from their calculations.
|
|
.TP
|
|
\fIstime\fP %lu
|
|
Amount of time that this process has been scheduled in kernel mode,
|
|
measured in clock ticks (divide by
|
|
.IR sysconf(_SC_CLK_TCK) .
|
|
.TP
|
|
\fIcutime\fP %ld
|
|
Amount of time that this process's
|
|
waited-for children have been scheduled in user mode,
|
|
measured in clock ticks (divide by
|
|
.IR sysconf(_SC_CLK_TCK) .
|
|
(See also
|
|
.BR times (2).)
|
|
This includes guest time, \fIcguest_time\fP
|
|
(time spent running a virtual CPU, see below).
|
|
.TP
|
|
\fIcstime\fP %ld
|
|
Amount of time that this process's
|
|
waited-for children have been scheduled in kernel mode,
|
|
measured in clock ticks (divide by
|
|
.IR sysconf(_SC_CLK_TCK) .
|
|
.TP
|
|
\fIpriority\fP %ld
|
|
(Explanation for Linux 2.6)
|
|
For processes running a real-time scheduling policy
|
|
.RI ( policy
|
|
below; see
|
|
.BR sched_setscheduler (2)),
|
|
this is the negated scheduling priority, minus one;
|
|
that is, a number in the range \-2 to \-100,
|
|
corresponding to real-time priorities 1 to 99.
|
|
For processes running under a non-real-time scheduling policy,
|
|
this is the raw nice value
|
|
.RB ( setpriority (2))
|
|
as represented in the kernel.
|
|
The kernel stores nice values as numbers
|
|
in the range 0 (high) to 39 (low),
|
|
corresponding to the user-visible nice range of \-20 to 19.
|
|
|
|
Before Linux 2.6, this was a scaled value based on
|
|
the scheduler weighting given to this process.
|
|
.\" And back in kernel 1.2 days things were different again.
|
|
.TP
|
|
\fInice\fP %ld
|
|
The nice value (see
|
|
.BR setpriority (2)),
|
|
a value in the range 19 (low priority) to \-20 (high priority).
|
|
.\" Back in kernel 1.2 days things were different.
|
|
.TP
|
|
.\" .TP
|
|
.\" \fIcounter\fP %ld
|
|
.\" The current maximum size in jiffies of the process's next timeslice,
|
|
.\" or what is currently left of its current timeslice, if it is the
|
|
.\" currently running process.
|
|
.\" .TP
|
|
.\" \fItimeout\fP %u
|
|
.\" The time in jiffies of the process's next timeout.
|
|
.\" timeout was removed sometime around 2.1/2.2
|
|
\fInum_threads\fP %ld
|
|
Number of threads in this process (since Linux 2.6).
|
|
Before kernel 2.6, this field was hard coded to 0 as a placeholder
|
|
for an earlier removed field.
|
|
.TP
|
|
.\" field 21
|
|
\fIitrealvalue\fP %ld
|
|
The time in jiffies before the next
|
|
.B SIGALRM
|
|
is sent to the process due to an interval timer.
|
|
Since kernel 2.6.17, this field is no longer maintained,
|
|
and is hard coded as 0.
|
|
.TP
|
|
\fIstarttime\fP %llu (was %lu before Linux 2.6)
|
|
The time in jiffies the process started after system boot.
|
|
.TP
|
|
\fIvsize\fP %lu
|
|
Virtual memory size in bytes.
|
|
.TP
|
|
\fIrss\fP %ld
|
|
Resident Set Size: number of pages the process has in real memory.
|
|
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.
|
|
.TP
|
|
\fIrsslim\fP %lu
|
|
Current soft limit in bytes on the rss of the process;
|
|
see the description of
|
|
.B RLIMIT_RSS
|
|
in
|
|
.BR getpriority (2).
|
|
.TP
|
|
\fIstartcode\fP %lu
|
|
The address above which program text can run.
|
|
.TP
|
|
\fIendcode\fP %lu
|
|
The address below which program text can run.
|
|
.TP
|
|
\fIstartstack\fP %lu
|
|
The address of the start (i.e., bottom) of the stack.
|
|
.TP
|
|
\fIkstkesp\fP %lu
|
|
The current value of ESP (stack pointer), as found in the
|
|
kernel stack page for the process.
|
|
.TP
|
|
\fIkstkeip\fP %lu
|
|
The current EIP (instruction pointer).
|
|
.TP
|
|
.\" field 31
|
|
\fIsignal\fP %lu
|
|
The bitmap of pending signals, displayed as a decimal number.
|
|
Obsolete, because it does not provide information on real-time signals; use
|
|
.I /proc/[pid]/status
|
|
instead.
|
|
.TP
|
|
\fIblocked\fP %lu
|
|
The bitmap of blocked signals, displayed as a decimal number.
|
|
Obsolete, because it does not provide information on real-time signals; use
|
|
.I /proc/[pid]/status
|
|
instead.
|
|
.TP
|
|
\fIsigignore\fP %lu
|
|
The bitmap of ignored signals, displayed as a decimal number.
|
|
Obsolete, because it does not provide information on real-time signals; use
|
|
.I /proc/[pid]/status
|
|
instead.
|
|
.TP
|
|
\fIsigcatch\fP %lu
|
|
The bitmap of caught signals, displayed as a decimal number.
|
|
Obsolete, because it does not provide information on real-time signals; use
|
|
.I /proc/[pid]/status
|
|
instead.
|
|
.TP
|
|
\fIwchan\fP %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
|
|
.IR /etc/psdatabase ,
|
|
then
|
|
try \fIps \-l\fP to see the WCHAN field in action.)
|
|
.TP
|
|
\fInswap\fP %lu
|
|
.\" nswap was added in 2.0
|
|
Number of pages swapped (not maintained).
|
|
.TP
|
|
\fIcnswap\fP %lu
|
|
.\" cnswap was added in 2.0
|
|
Cumulative \fInswap\fP for child processes (not maintained).
|
|
.TP
|
|
\fIexit_signal\fP %d (since Linux 2.1.22)
|
|
Signal to be sent to parent when we die.
|
|
.TP
|
|
\fIprocessor\fP %d (since Linux 2.2.8)
|
|
CPU number last executed on.
|
|
.TP
|
|
\fIrt_priority\fP %u (since Linux 2.5.19; was %lu before Linux 2.6.22)
|
|
Real-time scheduling priority, a number in the range 1 to 99 for
|
|
processes scheduled under a real-time policy,
|
|
or 0, for non-real-time processes (see
|
|
.BR sched_setscheduler (2)).
|
|
.TP
|
|
.\" field 41
|
|
\fIpolicy\fP %u (since Linux 2.5.19; was %lu before Linux 2.6.22)
|
|
Scheduling policy (see
|
|
.BR sched_setscheduler (2)).
|
|
Decode using the SCHED_* constants in
|
|
.IR linux/sched.h .
|
|
.TP
|
|
\fIdelayacct_blkio_ticks\fP %llu (since Linux 2.6.18)
|
|
Aggregated block I/O delays, measured in clock ticks (centiseconds).
|
|
.TP
|
|
\fIguest_time\fP %lu (since Linux 2.6.24)
|
|
Guest time of the process (time spent running a virtual CPU
|
|
for a guest operating system), measured in clock ticks (divide by
|
|
.IR sysconf(_SC_CLK_TCK) .
|
|
.TP
|
|
\fIcguest_time\fP %ld (since Linux 2.6.24)
|
|
Guest time of the process's children, measured in clock ticks (divide by
|
|
.IR sysconf(_SC_CLK_TCK) .
|
|
.RE
|
|
.TP
|
|
.I /proc/[pid]/statm
|
|
Provides information about memory usage, measured in pages.
|
|
The columns are:
|
|
.in +4n
|
|
.nf
|
|
|
|
size total program size
|
|
(same as VmSize in \fI/proc/[pid]/status\fP)
|
|
resident resident set size
|
|
(same as VmRSS in \fI/proc/[pid]/status\fP)
|
|
share shared pages (from shared mappings)
|
|
text text (code)
|
|
.\" (not including libs; broken, includes data segment)
|
|
lib library (unused in Linux 2.6)
|
|
data data + stack
|
|
.\" (including libs; broken, includes library text)
|
|
dt dirty pages (unused in Linux 2.6)
|
|
.fi
|
|
.in
|
|
.TP
|
|
.I /proc/[pid]/status
|
|
Provides much of the information in
|
|
.I /proc/[pid]/stat
|
|
and
|
|
.I /proc/[pid]/statm
|
|
in a format that's easier for humans to parse.
|
|
Here's an example:
|
|
.in +4n
|
|
.nf
|
|
|
|
.RB "$" " cat /proc/$$/status"
|
|
Name: bash
|
|
State: S (sleeping)
|
|
Tgid: 3515
|
|
Pid: 3515
|
|
PPid: 3452
|
|
TracerPid: 0
|
|
Uid: 1000 1000 1000 1000
|
|
Gid: 100 100 100 100
|
|
FDSize: 256
|
|
Groups: 16 33 100
|
|
VmPeak: 9136 kB
|
|
VmSize: 7896 kB
|
|
VmLck: 0 kB
|
|
VmHWM: 7572 kB
|
|
VmRSS: 6316 kB
|
|
VmData: 5224 kB
|
|
VmStk: 88 kB
|
|
VmExe: 572 kB
|
|
VmLib: 1708 kB
|
|
VmPTE: 20 kB
|
|
Threads: 1
|
|
SigQ: 0/3067
|
|
SigPnd: 0000000000000000
|
|
ShdPnd: 0000000000000000
|
|
SigBlk: 0000000000010000
|
|
SigIgn: 0000000000384004
|
|
SigCgt: 000000004b813efb
|
|
CapInh: 0000000000000000
|
|
CapPrm: 0000000000000000
|
|
CapEff: 0000000000000000
|
|
CapBnd: ffffffffffffffff
|
|
Cpus_allowed: 00000001
|
|
Cpus_allowed_list: 0
|
|
Mems_allowed: 1
|
|
Mems_allowed_list: 0
|
|
voluntary_ctxt_switches: 150
|
|
nonvoluntary_ctxt_switches: 545
|
|
.fi
|
|
.in
|
|
.IP
|
|
The fields are as follows:
|
|
.RS
|
|
.IP * 2
|
|
.IR Name :
|
|
Command run by this process.
|
|
.IP *
|
|
.IR State :
|
|
Current state of the process. One of
|
|
"R (running)",
|
|
"S (sleeping)",
|
|
"D (disk sleep)",
|
|
"T (stopped)",
|
|
"T (tracing stop)",
|
|
"Z (zombie)",
|
|
or
|
|
"X (dead)".
|
|
.IP *
|
|
.IR Tgid :
|
|
Thread group ID (i.e., Process ID).
|
|
.IP *
|
|
.IR Pid :
|
|
Thread ID (see
|
|
.BR gettid (2)).
|
|
.IP *
|
|
.IR TracerPid :
|
|
PID of process tracing this process (0 if not being traced).
|
|
.IP *
|
|
.IR Uid ", " Gid :
|
|
Real, effective, saved set, and file system UIDs (GIDs).
|
|
.IP *
|
|
.IR FDSize :
|
|
Number of file descriptor slots currently allocated.
|
|
.IP *
|
|
.IR Groups :
|
|
Supplementary group list.
|
|
.IP *
|
|
.IR VmPeak :
|
|
Peak virtual memory size.
|
|
.IP *
|
|
.IR VmSize :
|
|
Virtual memory size.
|
|
.IP *
|
|
.IR VmLck :
|
|
Locked memory size.
|
|
.IP *
|
|
.IR VmHWM :
|
|
Peak resident set size ("high water mark").
|
|
.IP *
|
|
.IR VmRSS :
|
|
Resident set size.
|
|
.IP *
|
|
.IR VmData ", " VmStk ", " VmExe :
|
|
Size of data, stack, and text segments.
|
|
.IP *
|
|
.IR VmLib :
|
|
Shared library code size.
|
|
.IP *
|
|
.IR VmPTE :
|
|
Page table entries size (since Linux 2.6.10).
|
|
.IP *
|
|
.IR Threads :
|
|
Number of threads in process containing this thread.
|
|
.IP *
|
|
.IR SigPnd ", " ShdPnd :
|
|
Number of signals pending for thread and for process as a whole (see
|
|
.BR pthreads (7)
|
|
and
|
|
.BR signal (7)).
|
|
.IP *
|
|
.IR SigBlk ", " SigIgn ", " SigCgt :
|
|
Masks indicating signals being blocked, ignored, and caught (see
|
|
.BR signal (7)).
|
|
.IP *
|
|
.IR CapInh ", " CapPrm ", " CapEff :
|
|
Masks of capabilities enabled in inheritable, permitted, and effective sets
|
|
(see
|
|
.BR capabilities (7)).
|
|
.IP *
|
|
.IR CapBnd :
|
|
Capability Bounding set
|
|
(since kernel 2.6.26, see
|
|
.BR capabilities (7)).
|
|
.IP *
|
|
.IR Cpus_allowed :
|
|
Mask of CPUs on which this process may run
|
|
(since Linux 2.6.24, see
|
|
.BR cpuset (7)).
|
|
.IP *
|
|
.IR Cpus_allowed_list :
|
|
Same as previous, but in "list format"
|
|
(since Linux 2.6.26, see
|
|
.BR cpuset (7)).
|
|
.IP *
|
|
.IR Mems_allowed :
|
|
Mask of memory nodes allowed to this process
|
|
(since Linux 2.6.24, see
|
|
.BR cpuset (7)).
|
|
.IP *
|
|
.IR Mems_allowed_list :
|
|
Same as previous, but in "list format"
|
|
(since Linux 2.6.26, see
|
|
.BR cpuset (7)).
|
|
.IP *
|
|
.IR voluntary_context_switches ", " nonvoluntary_context_switches :
|
|
Number of voluntary and involuntary context switches (since Linux 2.6.23).
|
|
.RE
|
|
.TP
|
|
.IR /proc/[pid]/task " (since Linux 2.6.0-test6)"
|
|
This is a directory that contains one subdirectory
|
|
for each thread in the process.
|
|
The name of each subdirectory is the numerical thread ID
|
|
.RI ( [tid] )
|
|
of the thread (see
|
|
.BR gettid (2)).
|
|
Within each of these subdirectories, there is a set of
|
|
files with the same names and contents as under the
|
|
.I /proc/[pid]
|
|
directories.
|
|
For attributes that are shared by all threads, the contents for
|
|
each of the files under the
|
|
.I task/[tid]
|
|
subdirectories will be the same as in the corresponding
|
|
file in the parent
|
|
.I /proc/[pid]
|
|
directory
|
|
(e.g., in a multithreaded process, all of the
|
|
.I task/[tid]/cwd
|
|
files will have the same value as the
|
|
.I /proc/[pid]/cwd
|
|
file in the parent directory, since all of the threads in a process
|
|
share a working directory).
|
|
For attributes that are distinct for each thread,
|
|
the corresponding files under
|
|
.I task/[tid]
|
|
may have different values (e.g., various fields in each of the
|
|
.I task/[tid]/status
|
|
files may be different for each thread).
|
|
|
|
.\" The following was still true as at kernel 2.6.13
|
|
In a multithreaded process, the contents of the
|
|
.I /proc/[pid]/task
|
|
directory are not available if the main thread has already terminated
|
|
(typically by calling
|
|
.BR pthread_exit (3)).
|
|
.TP
|
|
.I /proc/apm
|
|
Advanced power management version and battery information when
|
|
.B CONFIG_APM
|
|
is defined at kernel compilation time.
|
|
.TP
|
|
.I /proc/bus
|
|
Contains subdirectories for installed busses.
|
|
.TP
|
|
.I /proc/bus/pccard
|
|
Subdirectory for PCMCIA devices when
|
|
.B CONFIG_PCMCIA
|
|
is set at kernel compilation time.
|
|
.TP
|
|
.I /proc/bus/pccard/drivers
|
|
.TP
|
|
.I /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.
|
|
.TP
|
|
.I /proc/bus/pci/devices
|
|
Information about PCI devices.
|
|
They may be accessed through
|
|
.BR lspci (8)
|
|
and
|
|
.BR setpci (8).
|
|
.TP
|
|
.I /proc/cmdline
|
|
Arguments passed to the Linux kernel at boot time.
|
|
Often done via a boot manager such as
|
|
.BR lilo (8)
|
|
or
|
|
.BR grub (8).
|
|
.TP
|
|
.IR /proc/config.gz " (since Linux 2.6)"
|
|
This file exposes the configuration options that were used
|
|
to build the currently running kernel,
|
|
in the same format as they would be shown in the
|
|
.I .config
|
|
file that resulted when configuring the kernel (using
|
|
.IR "make xconfig" ,
|
|
.IR "make config" ,
|
|
or similar).
|
|
The file contents are compressed; view or search them using
|
|
.BR zcat (1),
|
|
.BR zgrep (1),
|
|
etc.
|
|
As long as no changes have been made to the following file,
|
|
the contents of
|
|
.I /proc/config.gz
|
|
are the same as those provided by :
|
|
.in +4n
|
|
.nf
|
|
|
|
cat /lib/modules/$(uname -r)/build/.config
|
|
.fi
|
|
.in
|
|
.IP
|
|
.I /proc/config.gz
|
|
is only provided if the kernel is configured with
|
|
.BR CONFIG_IKCONFIG_PROC .
|
|
.TP
|
|
.I /proc/cpuinfo
|
|
This is a collection of CPU and system architecture dependent items,
|
|
for each supported architecture a different list.
|
|
Two common entries are \fIprocessor\fP which gives CPU number and
|
|
\fIbogomips\fP; a system constant that is calculated
|
|
during kernel initialization.
|
|
SMP machines have information for
|
|
each CPU.
|
|
.TP
|
|
.I /proc/devices
|
|
Text listing of major numbers and device groups.
|
|
This can be used by MAKEDEV scripts for consistency with the kernel.
|
|
.TP
|
|
.IR /proc/diskstats " (since Linux 2.5.69)"
|
|
This file contains disk I/O statistics for each disk device.
|
|
See the kernel source file
|
|
.I Documentation/iostats.txt
|
|
for further information.
|
|
.TP
|
|
.I /proc/dma
|
|
This is a list of the registered \fIISA\fP DMA (direct memory access)
|
|
channels in use.
|
|
.TP
|
|
.I /proc/driver
|
|
Empty subdirectory.
|
|
.TP
|
|
.I /proc/execdomains
|
|
List of the execution domains (ABI personalities).
|
|
.TP
|
|
.I /proc/fb
|
|
Frame buffer information when
|
|
.B CONFIG_FB
|
|
is defined during kernel compilation.
|
|
.TP
|
|
.I /proc/filesystems
|
|
A text listing of the file systems which are supported by the kernel,
|
|
namely file systems which were compiled into the kernel or whose kernel
|
|
modules are currently loaded.
|
|
(See also
|
|
.BR filesystems (5).)
|
|
If a file system is marked with "nodev",
|
|
this means that it does not require a block device to be mounted
|
|
(e.g., virtual file system, network file system).
|
|
|
|
Incidentally, this file may be used by
|
|
.BR mount (8)
|
|
when no file system is specified and it didn't manage to determine the
|
|
file system type.
|
|
Then file systems contained in this file are tried
|
|
(excepted those that are marked with "nodev").
|
|
.TP
|
|
.I /proc/fs
|
|
Empty subdirectory.
|
|
.TP
|
|
.I /proc/ide
|
|
This directory
|
|
exists on systems with the IDE bus.
|
|
There are directories for each IDE channel and attached device.
|
|
Files include:
|
|
|
|
.in +4n
|
|
.nf
|
|
cache buffer size in KB
|
|
capacity number of sectors
|
|
driver driver version
|
|
geometry physical and logical geometry
|
|
identify in hexadecimal
|
|
media media type
|
|
model manufacturer's model number
|
|
settings drive settings
|
|
smart_thresholds in hexadecimal
|
|
smart_values in hexadecimal
|
|
.fi
|
|
.in
|
|
|
|
The
|
|
.BR hdparm (8)
|
|
utility provides access to this information in a friendly format.
|
|
.TP
|
|
.I /proc/interrupts
|
|
This is used to record the number of interrupts per CPU per IO device.
|
|
Since Linux 2.6.24,
|
|
for the i386 and x86_64 architectures, at least, this also includes
|
|
interrupts internal to the system (that is, not associated with a device
|
|
as such), such as NMI (nonmaskable interrupt), LOC (local timer interrupt),
|
|
and for SMP systems, TLB (TLB flush interrupt), RES (rescheduling
|
|
interrupt), CAL (remote function call interrupt), and possibly others.
|
|
Very easy to read formatting, done in ASCII.
|
|
.TP
|
|
.I /proc/iomem
|
|
I/O memory map in Linux 2.4.
|
|
.TP
|
|
.I /proc/ioports
|
|
This is a list of currently registered Input-Output port regions that
|
|
are in use.
|
|
.TP
|
|
.IR /proc/kallsyms " (since Linux 2.5.71)"
|
|
This holds the kernel exported symbol definitions used by the
|
|
.BR modules (X)
|
|
tools to dynamically link and bind loadable modules.
|
|
In Linux 2.5.47 and earlier, a similar file with slightly different syntax
|
|
was named
|
|
.IR ksyms .
|
|
.TP
|
|
.I /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
|
|
.RI ( /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.
|
|
.TP
|
|
.I /proc/kmsg
|
|
This file can be used instead of the
|
|
.BR 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
|
|
.BR syslog (2)
|
|
system call facility to log kernel messages.
|
|
|
|
Information in this file is retrieved with the
|
|
.BR dmesg (1)
|
|
program.
|
|
.TP
|
|
.IR /proc/ksyms " (Linux 1.1.23-2.5.47)"
|
|
See
|
|
.IR /proc/kallsyms .
|
|
.TP
|
|
.I /proc/loadavg
|
|
The first three fields in this file are load average figures
|
|
giving 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
|
|
.BR uptime (1)
|
|
and other programs.
|
|
The fourth field consists of two numbers separated by a slash (/).
|
|
The first of these is the number of currently executing kernel
|
|
scheduling entities (processes, threads);
|
|
this will be less than or equal to the number of CPUs.
|
|
The value after the slash is the number of kernel scheduling entities
|
|
that currently exist on the system.
|
|
The fifth field is the PID of the process that was most
|
|
recently created on the system.
|
|
.TP
|
|
.I /proc/locks
|
|
This file shows current file locks
|
|
.RB ( flock "(2) and " fcntl (2))
|
|
and leases
|
|
.RB ( fcntl (2)).
|
|
.TP
|
|
.IR /proc/malloc " (only up to and including Linux 2.2)"
|
|
.\" It looks like this only ever did something back in 1.0 days
|
|
This file is only present if
|
|
.B CONFIG_DEBUG_MALLOC
|
|
was defined during compilation.
|
|
.TP
|
|
.I /proc/meminfo
|
|
This file reports statistics about memory usage on the system.
|
|
It is used by
|
|
.BR 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.
|
|
.TP
|
|
.I /proc/modules
|
|
A text list of the modules that have been loaded by the system.
|
|
See also
|
|
.BR lsmod (8).
|
|
.TP
|
|
.I /proc/mounts
|
|
Before kernel 2.4.19, this file was a list
|
|
of all the file systems currently mounted on the system.
|
|
With the introduction of per-process mount namespaces in
|
|
Linux 2.4.19, this file became a link to
|
|
.IR /proc/self/mounts ,
|
|
which lists the mount points of the process's own mount namespace.
|
|
The format of this file is documented in
|
|
.BR fstab (5).
|
|
.TP
|
|
.I /proc/mtrr
|
|
Memory Type Range Registers.
|
|
See the kernel source file
|
|
.I Documentation/mtrr.txt
|
|
for details.
|
|
.TP
|
|
.I /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
|
|
.BR cat (1).
|
|
However, the standard
|
|
.BR netstat (8)
|
|
suite provides much cleaner access to these files.
|
|
.TP
|
|
.I /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 preprogrammed ARP entries.
|
|
The format is:
|
|
|
|
.nf
|
|
.ft CW
|
|
.in 8n
|
|
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
|
|
.ft
|
|
.fi
|
|
.in
|
|
|
|
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
|
|
.IR /usr/include/linux/if_arp.h )
|
|
and
|
|
the "HW address" is the data link layer mapping for that IP address if
|
|
it is known.
|
|
.TP
|
|
.I /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
|
|
.BR ifconfig (8)
|
|
program to report device status.
|
|
The format is:
|
|
|
|
.nf
|
|
.ft CW
|
|
.in 1n
|
|
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
|
|
.in
|
|
.ft
|
|
.fi
|
|
.\" .TP
|
|
.\" .I /proc/net/ipx
|
|
.\" No information.
|
|
.\" .TP
|
|
.\" .I /proc/net/ipx_route
|
|
.\" No information.
|
|
.TP
|
|
.I /proc/net/dev_mcast
|
|
Defined in
|
|
.IR /usr/src/linux/net/core/dev_mcast.c :
|
|
.nf
|
|
.in +5
|
|
indx interface_name dmi_u dmi_g dmi_address
|
|
2 eth0 1 0 01005e000001
|
|
3 eth1 1 0 01005e000001
|
|
4 eth2 1 0 01005e000001
|
|
.in
|
|
.fi
|
|
.TP
|
|
.I /proc/net/igmp
|
|
Internet Group Management Protocol.
|
|
Defined in
|
|
.IR /usr/src/linux/net/core/igmp.c .
|
|
.TP
|
|
.I /proc/net/rarp
|
|
This file uses the same format as the
|
|
.I arp
|
|
file and contains the current reverse mapping database used to provide
|
|
.BR rarp (8)
|
|
reverse address lookup services.
|
|
If RARP is not configured into the
|
|
kernel,
|
|
this file will not be present.
|
|
.TP
|
|
.I /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 effective UID of the creator of the socket.
|
|
.\" .TP
|
|
.\" .I /proc/net/route
|
|
.\" No information, but looks similar to
|
|
.\" .BR route (8).
|
|
.TP
|
|
.I /proc/net/snmp
|
|
This file holds the ASCII data needed for the IP, ICMP, TCP, and UDP
|
|
management
|
|
information bases for an SNMP agent.
|
|
.TP
|
|
.I /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 "rem_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 effective UID of the creator of the socket.
|
|
.TP
|
|
.I /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 "rem_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 effective UID of the creator of the socket.
|
|
The format is:
|
|
|
|
.nf
|
|
.ft CW
|
|
.in 1n
|
|
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
|
|
.in
|
|
.ft
|
|
.fi
|
|
.TP
|
|
.I /proc/net/unix
|
|
Lists the Unix domain sockets present within the system and their
|
|
status.
|
|
The format is:
|
|
.nf
|
|
.sp .5
|
|
.ft CW
|
|
Num RefCount Protocol Flags Type St Path
|
|
0: 00000002 00000000 00000000 0001 03
|
|
1: 00000001 00000000 00010000 0001 01 /dev/printer
|
|
.ft
|
|
.sp .5
|
|
.fi
|
|
|
|
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 kernel).
|
|
\&"St" is the internal state of the
|
|
socket and Path is the bound path (if any) of the socket.
|
|
.TP
|
|
.I /proc/partitions
|
|
Contains major and minor numbers of each partition as well as number
|
|
of blocks and partition name.
|
|
.TP
|
|
.I /proc/pci
|
|
This is a listing of all PCI devices found during kernel initialization
|
|
and their configuration.
|
|
|
|
This file has been deprecated in favor of a new
|
|
.I /proc
|
|
interface for PCI
|
|
.RI ( /proc/bus/pci ).
|
|
It became optional in Linux 2.2 (available with
|
|
.B CONFIG_PCI_OLD_PROC
|
|
set at kernel compilation).
|
|
It became once more nonoptionally enabled in Linux 2.4.
|
|
Next, it was deprecated in Linux 2.6 (still available with
|
|
.B CONFIG_PCI_LEGACY_PROC
|
|
set), and finally removed altogether since Linux 2.6.17.
|
|
.\" FIXME /proc/sched_debug
|
|
.\" .TP
|
|
.\" .IR /proc/sched_debug " (since Linux 2.6.23)"
|
|
.\" See also /proc/[pid]/sched
|
|
.TP
|
|
.I /proc/scsi
|
|
A directory with the
|
|
.I scsi
|
|
mid-level pseudo-file and various SCSI low-level
|
|
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
|
|
.BR cat (1).
|
|
|
|
You can also write to some of the files to reconfigure the subsystem or
|
|
switch certain features on or off.
|
|
.TP
|
|
.I /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 \fIadd-single-device\fP command which
|
|
allows root to add a hotplugged device to the list of known devices.
|
|
|
|
The command
|
|
.in +4n
|
|
.nf
|
|
|
|
echo \(aqscsi add-single-device 1 0 5 0\(aq > /proc/scsi/scsi
|
|
|
|
.fi
|
|
.in
|
|
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.
|
|
.TP
|
|
.I /proc/scsi/[drivername]
|
|
\fI[drivername]\fP 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 different hosts.
|
|
For example, with the \fIlatency\fP and \fInolatency\fP commands,
|
|
root can switch on and off command latency measurement code in the
|
|
eata_dma driver.
|
|
With the \fIlockup\fP and \fIunlock\fP commands,
|
|
root can control bus lockups simulated by the scsi_debug driver.
|
|
.TP
|
|
.I /proc/self
|
|
This directory refers to the process accessing the
|
|
.I /proc
|
|
file system,
|
|
and is identical to the
|
|
.I /proc
|
|
directory named by the process ID of the same process.
|
|
.TP
|
|
.I /proc/slabinfo
|
|
Information about kernel caches.
|
|
Since Linux 2.6.16 this file is only present if the
|
|
.B CONFIG_SLAB
|
|
kernel configuration option is enabled.
|
|
The columns in
|
|
.I /proc/slabinfo
|
|
are:
|
|
.in +4n
|
|
.nf
|
|
|
|
cache-name
|
|
num-active-objs
|
|
total-objs
|
|
object-size
|
|
num-active-slabs
|
|
total-slabs
|
|
num-pages-per-slab
|
|
.fi
|
|
.in
|
|
|
|
See
|
|
.BR slabinfo (5)
|
|
for details.
|
|
.TP
|
|
.I /proc/stat
|
|
kernel/system statistics.
|
|
Varies with architecture.
|
|
Common
|
|
entries include:
|
|
.RS
|
|
.TP
|
|
\fIcpu 3357 0 4313 1362393\fP
|
|
The amount of time, measured in units of
|
|
USER_HZ (1/100ths of a second on most architectures, use
|
|
.IR sysconf(_SC_CLK_TCK)
|
|
to obtain the right value),
|
|
.\" 1024 on Alpha and ia64
|
|
that the system spent in user mode,
|
|
user mode with low priority (nice), system mode, and the
|
|
idle task, respectively.
|
|
.\" FIXME Actually, the following info about the /proc/stat 'cpu' field
|
|
.\" does not seem to be quite right (at least in 2.6.12)
|
|
The last value should be USER_HZ times the
|
|
second entry in the uptime pseudo-file.
|
|
|
|
In Linux 2.6 this line includes three additional columns:
|
|
.I iowait
|
|
\- time waiting for I/O to complete (since 2.5.41);
|
|
.I irq
|
|
\- time servicing interrupts (since 2.6.0-test4);
|
|
.I softirq
|
|
\- time servicing softirqs (since 2.6.0-test4).
|
|
|
|
Since Linux 2.6.11, there is an eighth column,
|
|
.I steal
|
|
\- stolen time, which is the time spent in other operating systems when
|
|
running in a virtualized environment
|
|
|
|
Since Linux 2.6.24, there is a ninth column,
|
|
.IR guest ,
|
|
which is the time spent running a virtual CPU for guest
|
|
operating systems under the control of the Linux kernel.
|
|
.\" See Changelog entry for 5e84cfde51cf303d368fcb48f22059f37b3872de
|
|
.TP
|
|
\fIpage 5741 1808\fP
|
|
The number of pages the system paged in and the number that were paged
|
|
out (from disk).
|
|
.TP
|
|
\fIswap 1 0\fP
|
|
The number of swap pages that have been brought in and out.
|
|
.TP
|
|
.\" FIXME The following is not the full picture for the 'intr' of
|
|
.\" /proc/stat on 2.6:
|
|
\fIintr 1462898\fP
|
|
This line shows counts of interrupts serviced since boot time,
|
|
for each of the possible system interrupts.
|
|
The first column is the total of all interrupts serviced;
|
|
each subsequent column is the total for a particular interrupt.
|
|
.TP
|
|
\fIdisk_io: (2,0):(31,30,5764,1,2) (3,0):\fP...
|
|
(major,disk_idx):(noinfo, read_io_ops, blks_read, write_io_ops, blks_written)
|
|
.br
|
|
(Linux 2.4 only)
|
|
.TP
|
|
\fIctxt 115315\fP
|
|
The number of context switches that the system underwent.
|
|
.TP
|
|
\fIbtime 769041601\fP
|
|
boot time, in seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC).
|
|
.TP
|
|
\fIprocesses 86031\fP
|
|
Number of forks since boot.
|
|
.TP
|
|
\fIprocs_running 6\fP
|
|
Number of processes in runnable state.
|
|
(Linux 2.5.45 onwards.)
|
|
.TP
|
|
\fIprocs_blocked 2\fP
|
|
Number of processes blocked waiting for I/O to complete.
|
|
(Linux 2.5.45 onwards.)
|
|
.RE
|
|
.TP
|
|
.I /proc/swaps
|
|
Swap areas in use.
|
|
See also
|
|
.BR swapon (8).
|
|
.TP
|
|
.I /proc/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 \fI/proc\fP file system, and the (deprecated)
|
|
.BR sysctl (2)
|
|
system call.
|
|
.TP
|
|
.IR /proc/sys/abi " (since Linux 2.4.10)"
|
|
This directory may contain files with application binary information.
|
|
.\" On some systems, it is not present.
|
|
See the kernel source file
|
|
.I Documentation/sysctl/abi.txt
|
|
for more information.
|
|
.TP
|
|
.I /proc/sys/debug
|
|
This directory may be empty.
|
|
.TP
|
|
.I /proc/sys/dev
|
|
This directory contains device-specific information (e.g.,
|
|
.IR dev/cdrom/info ).
|
|
On
|
|
some systems, it may be empty.
|
|
.TP
|
|
.I /proc/sys/fs
|
|
This directory contains the files and subdirectories for kernel variables
|
|
related to file systems.
|
|
.TP
|
|
.I /proc/sys/fs/binfmt_misc
|
|
Documentation for files in this directory can be found
|
|
in the kernel sources in
|
|
.IR Documentation/binfmt_misc.txt .
|
|
.TP
|
|
.IR /proc/sys/fs/dentry-state " (since Linux 2.2)"
|
|
This file contains information about the status of the
|
|
directory cache (dcache).
|
|
The file contains six numbers,
|
|
.IR nr_dentry ", " nr_unused ", " age_limit " (age in seconds), "
|
|
.I want_pages
|
|
(pages requested by system) and two dummy values.
|
|
.RS
|
|
.IP * 2
|
|
.I nr_dentry
|
|
is the number of allocated dentries (dcache entries).
|
|
This field is unused in Linux 2.2.
|
|
.IP *
|
|
.I nr_unused
|
|
is the number of unused dentries.
|
|
.IP *
|
|
.I age_limit
|
|
.\" looks like this is unused in kernels 2.2 to 2.6
|
|
is the age in seconds after which dcache entries
|
|
can be reclaimed when memory is short.
|
|
.IP *
|
|
.I want_pages
|
|
.\" looks like this is unused in kernels 2.2 to 2.6
|
|
is nonzero when the kernel has called shrink_dcache_pages() and the
|
|
dcache isn't pruned yet.
|
|
.RE
|
|
.TP
|
|
.I /proc/sys/fs/dir-notify-enable
|
|
This file can be used to disable or enable the
|
|
.I dnotify
|
|
interface described in
|
|
.BR fcntl (2)
|
|
on a system-wide basis.
|
|
A value of 0 in this file disables the interface,
|
|
and a value of 1 enables it.
|
|
.TP
|
|
.I /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 quota entries is very low and
|
|
you have some awesome number of simultaneous system users,
|
|
you might want to raise the limit.
|
|
.TP
|
|
.I /proc/sys/fs/dquot-nr
|
|
This file shows the number of allocated disk quota
|
|
entries and the number of free disk quota entries.
|
|
.TP
|
|
.IR /proc/sys/fs/epoll " (since Linux 2.6.28)"
|
|
This directory contains the file
|
|
.IR max_user_watches ,
|
|
which can be used to limit the amount of kernel memory consumed by the
|
|
.I epoll
|
|
interface.
|
|
For further details, see
|
|
.BR epoll (7).
|
|
.TP
|
|
.I /proc/sys/fs/file-max
|
|
This file defines
|
|
a system-wide limit on the number of open files for all processes.
|
|
(See also
|
|
.BR setrlimit (2),
|
|
which can be used by a process to set the per-process limit,
|
|
.BR 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:
|
|
.br
|
|
|
|
.br
|
|
.nf
|
|
.ft CW
|
|
echo 100000 > /proc/sys/fs/file-max
|
|
.fi
|
|
.ft
|
|
|
|
The kernel constant
|
|
.B NR_OPEN
|
|
imposes an upper limit on the value that may be placed in
|
|
.IR file-max .
|
|
|
|
If you increase
|
|
.IR /proc/sys/fs/file-max ","
|
|
be sure to increase
|
|
.I /proc/sys/fs/inode-max
|
|
to 3-4 times the new
|
|
value of
|
|
.IR /proc/sys/fs/file-max ","
|
|
or you will run out of inodes.
|
|
.TP
|
|
.I /proc/sys/fs/file-nr
|
|
This (read-only) file 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.
|
|
.TP
|
|
.I /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
|
|
.IR file-max ,
|
|
since \fIstdin\fP, \fIstdout\fP
|
|
and network sockets also need an inode to handle them.
|
|
When you regularly run out of inodes, you need to increase this value.
|
|
.TP
|
|
.I /proc/sys/fs/inode-nr
|
|
This file contains the first two values from
|
|
.IR inode-state .
|
|
.TP
|
|
.I /proc/sys/fs/inode-state
|
|
This file
|
|
contains seven numbers:
|
|
.IR nr_inodes ,
|
|
.IR nr_free_inodes ,
|
|
.IR preshrink ,
|
|
and four dummy values.
|
|
.I nr_inodes
|
|
is the number of inodes the system has allocated.
|
|
This can be slightly more than
|
|
.I inode-max
|
|
because Linux allocates them one page full at a time.
|
|
.I nr_free_inodes
|
|
represents the number of free inodes.
|
|
.I preshrink
|
|
is nonzero when the
|
|
.I nr_inodes
|
|
>
|
|
.I inode-max
|
|
and the system needs to prune the inode list instead of allocating more.
|
|
.TP
|
|
.IR /proc/sys/fs/inotify " (since Linux 2.6.13)"
|
|
This directory contains files
|
|
.IR max_queued_events ", " max_user_instances ", and " max_user_watches ,
|
|
that can be used to limit the amount of kernel memory consumed by the
|
|
.I inotify
|
|
interface.
|
|
For further details, see
|
|
.BR inotify (7).
|
|
.TP
|
|
.I /proc/sys/fs/lease-break-time
|
|
This file specifies the grace period that the kernel grants to a process
|
|
holding a file lease
|
|
.RB ( 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.
|
|
.TP
|
|
.I /proc/sys/fs/leases-enable
|
|
This file can be used to enable or disable file leases
|
|
.RB ( fcntl (2))
|
|
on a system-wide basis.
|
|
If this file contains the value 0, leases are disabled.
|
|
A nonzero value enables leases.
|
|
.TP
|
|
.IR /proc/sys/fs/mqueue " (since Linux 2.6.6)"
|
|
This directory contains files
|
|
.IR msg_max ", " msgsize_max ", and " queues_max ,
|
|
controlling the resources used by POSIX message queues.
|
|
See
|
|
.BR mq_overview (7)
|
|
for details.
|
|
.TP
|
|
.IR /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 file systems only support 16-bit UIDs and GIDs, although in Linux
|
|
UIDs and GIDs are 32 bits.
|
|
When one of these file systems is mounted
|
|
with writes enabled, any UID or GID that would exceed 65535 is translated
|
|
to the overflow value before being written to disk.
|
|
.TP
|
|
.IR /proc/sys/fs/pipe-max-size " (since Linux 2.6.35)"
|
|
The value in this file defines an upper limit for raising the capacity
|
|
of a pipe using the
|
|
.BR fcntl (2)
|
|
.B F_SETPIPE_SZ
|
|
operation.
|
|
This limit applies only to unprivileged processes.
|
|
The default value for this file is 1,048,576.
|
|
The value assigned to this file may be rounded upward,
|
|
to reflect the value actually employed for a convenient implementation.
|
|
To determine the rounded-up value,
|
|
display the contents of this file after assigning a value to it.
|
|
The minimum value that can be assigned to this file is the system page size.
|
|
.TP
|
|
.IR /proc/sys/fs/suid_dumpable " (since Linux 2.6.13)"
|
|
.\" The following is based on text from Documentation/sysctl/kernel.txt
|
|
The value in this file determines whether core dump files are
|
|
produced for set-user-ID or otherwise protected/tainted binaries.
|
|
Three different integer values can be specified:
|
|
.sp
|
|
\fI0\ (default)\fP
|
|
This provides the traditional (pre-Linux 2.6.13) behavior.
|
|
A core dump will not be produced for a process which has
|
|
changed credentials (by calling
|
|
.BR seteuid (2),
|
|
.BR setgid (2),
|
|
or similar, or by executing a set-user-ID or set-group-ID program)
|
|
or whose binary does not have read permission enabled.
|
|
.sp
|
|
\fI1\ ("debug")\fP
|
|
All processes dump core when possible.
|
|
The core dump is owned by the file system user ID of the dumping process
|
|
and no security is applied.
|
|
This is intended for system debugging situations only.
|
|
Ptrace is unchecked.
|
|
.sp
|
|
\fI2\ ("suidsafe")\fP
|
|
Any binary which normally would not be dumped (see "0" above)
|
|
is dumped readable by root only.
|
|
This allows the user to remove the core dump file but not to read it.
|
|
For security reasons core dumps in this mode will not overwrite one
|
|
another or other files.
|
|
This mode is appropriate when administrators are
|
|
attempting to debug problems in a normal environment.
|
|
.TP
|
|
.I /proc/sys/fs/super-max
|
|
This file
|
|
controls the maximum number of superblocks, and
|
|
thus the maximum number of mounted file systems the kernel
|
|
can have.
|
|
You only need to increase
|
|
.I super-max
|
|
if you need to mount more file systems than the current value in
|
|
.I super-max
|
|
allows you to.
|
|
.TP
|
|
.I /proc/sys/fs/super-nr
|
|
This file
|
|
contains the number of file systems currently mounted.
|
|
.TP
|
|
.I /proc/sys/kernel
|
|
This directory contains files controlling a range of kernel parameters,
|
|
as described below.
|
|
.TP
|
|
.I /proc/sys/kernel/acct
|
|
This file
|
|
contains three numbers:
|
|
.IR highwater ,
|
|
.IR lowwater ,
|
|
and
|
|
.IR frequency .
|
|
If BSD-style process accounting is enabled these values control
|
|
its behavior.
|
|
If free space on file system where the log lives goes below
|
|
.I lowwater
|
|
percent accounting suspends.
|
|
If free space gets above
|
|
.I highwater
|
|
percent accounting resumes.
|
|
.I 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% or less space is free; resume it
|
|
if 4% or more space is free; consider information about amount of free space
|
|
valid for 30 seconds.
|
|
.TP
|
|
.IR /proc/sys/kernel/cap-bound " (from Linux 2.2 to 2.6.24)"
|
|
This file holds the value of the kernel
|
|
.I "capability bounding set"
|
|
(expressed as a signed decimal number).
|
|
This set is ANDed against the capabilities permitted to a process
|
|
during
|
|
.BR execve (2).
|
|
Starting with Linux 2.6.25,
|
|
the system-wide capability bounding set disappeared,
|
|
and was replaced by a per-thread bounding set; see
|
|
.BR capabilities (7).
|
|
.TP
|
|
.I /proc/sys/kernel/core_pattern
|
|
See
|
|
.BR core (5).
|
|
.TP
|
|
.I /proc/sys/kernel/core_uses_pid
|
|
See
|
|
.BR core (5).
|
|
.TP
|
|
.I /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
|
|
.BR init (8)
|
|
program to handle a graceful restart.
|
|
When the value is greater than zero, Linux's reaction 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 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.
|
|
.TP
|
|
.I /proc/sys/kernel/hotplug
|
|
This file
|
|
contains the path for the hotplug policy agent.
|
|
The default value in this file is
|
|
.IR /sbin/hotplug .
|
|
.TP
|
|
.IR /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
|
|
.BR domainname (1)
|
|
and
|
|
.BR hostname (1),
|
|
that is:
|
|
|
|
.in +4n
|
|
.nf
|
|
.RB "#" " echo \(aqdarkstar\(aq > /proc/sys/kernel/hostname"
|
|
.RB "#" " echo \(aqmydomain\(aq > /proc/sys/kernel/domainname"
|
|
.fi
|
|
.in
|
|
|
|
has the same effect as
|
|
|
|
.in +4n
|
|
.nf
|
|
.RB "#" " hostname \(aqdarkstar\(aq"
|
|
.RB "#" " domainname \(aqmydomain\(aq"
|
|
.fi
|
|
.in
|
|
|
|
Note, however, that the classic darkstar.frop.org has the
|
|
hostname "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
|
|
.BR hostname (1)
|
|
man page.
|
|
.TP
|
|
.I /proc/sys/kernel/htab-reclaim
|
|
(PowerPC only) If this file is set to a nonzero value,
|
|
the PowerPC htab
|
|
(see kernel file
|
|
.IR Documentation/powerpc/ppc_htab.txt )
|
|
is pruned
|
|
each time the system hits the idle loop.
|
|
.TP
|
|
.I /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.
|
|
.TP
|
|
.I /proc/sys/kernel/modprobe
|
|
This file contains the path for the kernel module loader.
|
|
The default value is
|
|
.IR /sbin/modprobe .
|
|
The file is only present if the kernel is built with the
|
|
.B CONFIG_KMOD
|
|
option enabled.
|
|
It is described by the kernel source file
|
|
.I Documentation/kmod.txt
|
|
(only present in kernel 2.4 and earlier).
|
|
.TP
|
|
.I /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.
|
|
.TP
|
|
.I /proc/sys/kernel/msgmni
|
|
This file defines the system-wide limit on the number of
|
|
message queue identifiers.
|
|
(This file is only present in Linux 2.4 onwards.)
|
|
.TP
|
|
.I /proc/sys/kernel/msgmnb
|
|
This file defines a system-wide parameter used to initialize the
|
|
.I msg_qbytes
|
|
setting for subsequently created message queues.
|
|
The
|
|
.I msg_qbytes
|
|
setting specifies the maximum number of bytes that may be written to the
|
|
message queue.
|
|
.TP
|
|
.IR /proc/sys/kernel/ostype " and " /proc/sys/kernel/osrelease
|
|
These files
|
|
give substrings of
|
|
.IR /proc/version .
|
|
.TP
|
|
.IR /proc/sys/kernel/overflowgid " and " /proc/sys/kernel/overflowuid
|
|
These files duplicate the files
|
|
.I /proc/sys/fs/overflowgid
|
|
and
|
|
.IR /proc/sys/fs/overflowuid .
|
|
.TP
|
|
.I /proc/sys/kernel/panic
|
|
This file gives read/write access to the kernel variable
|
|
.IR 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 watchdog device driver, the recommended setting is 60.
|
|
.TP
|
|
.IR /proc/sys/kernel/panic_on_oops " (since Linux 2.5.68)"
|
|
This file controls the kernel's behavior when an oops
|
|
or BUG is encountered.
|
|
If this file contains 0, then the system
|
|
tries to continue 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
|
|
.I /proc/sys/kernel/panic
|
|
file is also nonzero then the machine will be rebooted.
|
|
.TP
|
|
.IR /proc/sys/kernel/pid_max " (since Linux 2.5.34)"
|
|
This file 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.
|
|
On 32-bit platforms, 32768 is the maximum value for
|
|
.IR pid_max .
|
|
On 64-bit systems,
|
|
.I pid_max
|
|
can be set to any value up to 2^22
|
|
.RB ( PID_MAX_LIMIT ,
|
|
approximately 4 million).
|
|
.\" Prior to 2.6.10, pid_max could also be raised above 32768 on 32-bit
|
|
.\" platforms, but this broke /proc/[pid]
|
|
.\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=109513010926152&w=2
|
|
.TP
|
|
.IR /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.
|
|
.TP
|
|
.I /proc/sys/kernel/printk
|
|
The four values in this file are
|
|
.IR console_loglevel ,
|
|
.IR default_message_loglevel ,
|
|
.IR minimum_console_level ,
|
|
and
|
|
.IR default_console_loglevel .
|
|
These values influence
|
|
.I printk()
|
|
behavior when printing or logging error messages.
|
|
See
|
|
.BR syslog (2)
|
|
for more info on the different loglevels.
|
|
Messages with a higher priority than
|
|
.I console_loglevel
|
|
will be printed to the console.
|
|
Messages without an explicit priority will be printed with priority
|
|
.IR default_message_level .
|
|
.I minimum_console_loglevel
|
|
is the minimum (highest) value to which
|
|
.I console_loglevel
|
|
can be set.
|
|
.I default_console_loglevel
|
|
is the default value for
|
|
.IR console_loglevel .
|
|
.TP
|
|
.IR /proc/sys/kernel/pty " (since Linux 2.6.4)"
|
|
This directory contains two files relating to the number of Unix 98
|
|
pseudo-terminals (see
|
|
.BR pts (4))
|
|
on the system.
|
|
.TP
|
|
.I /proc/sys/kernel/pty/max
|
|
This file defines the maximum number of pseudo-terminals.
|
|
.TP
|
|
.I /proc/sys/kernel/pty/nr
|
|
This read-only file
|
|
indicates how many pseudo-terminals are currently in use.
|
|
.TP
|
|
.I /proc/sys/kernel/random
|
|
This directory
|
|
contains various parameters controlling the operation of the file
|
|
.IR /dev/random .
|
|
See
|
|
.BR random (4)
|
|
for further information.
|
|
.TP
|
|
.I /proc/sys/kernel/real-root-dev
|
|
This file is documented in the kernel source file
|
|
.IR Documentation/initrd.txt .
|
|
.TP
|
|
.IR /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?
|
|
.TP
|
|
.I /proc/sys/kernel/rtsig-max
|
|
(Only in kernels up to and including 2.6.7; see
|
|
.BR setrlimit (2))
|
|
This file can be used to tune the maximum number
|
|
of POSIX real-time (queued) signals that can be outstanding
|
|
in the system.
|
|
.TP
|
|
.I /proc/sys/kernel/rtsig-nr
|
|
(Only in kernels up to and including 2.6.7.)
|
|
This file shows the number POSIX real-time signals currently queued.
|
|
.TP
|
|
.IR /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:
|
|
.RS
|
|
.IP SEMMSL 8
|
|
The maximum semaphores per semaphore set.
|
|
.IP SEMMNS 8
|
|
A system-wide limit on the number of semaphores in all semaphore sets.
|
|
.IP SEMOPM 8
|
|
The maximum number of operations that may be specified in a
|
|
.BR semop (2)
|
|
call.
|
|
.IP SEMMNI 8
|
|
A system-wide limit on the maximum number of semaphore identifiers.
|
|
.RE
|
|
.TP
|
|
.I /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 at
|
|
compile time by editing
|
|
.I include/scsi/sg.h
|
|
and changing
|
|
the value of
|
|
.BR SG_BIG_BUFF .
|
|
However, there shouldn't be any reason to change this value.
|
|
.TP
|
|
.I /proc/sys/kernel/shmall
|
|
This file
|
|
contains the system-wide limit on the total number of pages of
|
|
System V shared memory.
|
|
.TP
|
|
.I /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 memory segments up to 1GB are now supported in the
|
|
kernel.
|
|
This value defaults to
|
|
.BR SHMMAX .
|
|
.TP
|
|
.I /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.
|
|
.TP
|
|
.I /proc/sys/kernel/sysrq
|
|
This file controls the functions allowed to be invoked by the SysRq key.
|
|
By default,
|
|
the file contains 1 meaning that every possible SysRq request is allowed
|
|
(in older kernel versions, SysRq was disabled by default,
|
|
and you were required to specifically enable it at run-time,
|
|
but this is not the case any more).
|
|
Possible values in this file are:
|
|
|
|
0 - disable sysrq completely
|
|
1 - enable all functions of sysrq
|
|
>1 - bitmask of allowed sysrq functions, as follows:
|
|
2 - enable control of console logging level
|
|
4 - enable control of keyboard (SAK, unraw)
|
|
8 - enable debugging dumps of processes etc.
|
|
16 - enable sync command
|
|
32 - enable remount read-only
|
|
64 - enable signalling of processes (term, kill, oom-kill)
|
|
128 - allow reboot/poweroff
|
|
256 - allow nicing of all real-time tasks
|
|
|
|
This file is only present if the
|
|
.B CONFIG_MAGIC_SYSRQ
|
|
kernel configuration option is enabled.
|
|
For further details see the kernel source file
|
|
.IR Documentation/sysrq.txt .
|
|
.TP
|
|
.I /proc/sys/kernel/version
|
|
This file contains a string like:
|
|
|
|
#5 Wed Feb 25 21:49:24 MET 1998
|
|
|
|
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.
|
|
.TP
|
|
.IR /proc/sys/kernel/threads-max " (since Linux 2.3.11)"
|
|
This file specifies the system-wide limit on the number of
|
|
threads (tasks) that can be created on the system.
|
|
.TP
|
|
.IR /proc/sys/kernel/zero-paged " (PowerPC only) "
|
|
This file
|
|
contains a flag.
|
|
When enabled (nonzero), Linux-PPC will pre-zero pages in
|
|
the idle loop, possibly speeding up get_free_pages.
|
|
.TP
|
|
.I /proc/sys/net
|
|
This directory contains networking stuff.
|
|
Explanations for some of the files under this directory can be found in
|
|
.BR tcp (7)
|
|
and
|
|
.BR ip (7).
|
|
.TP
|
|
.I /proc/sys/net/core/somaxconn
|
|
This file defines a ceiling value for the
|
|
.I backlog
|
|
argument of
|
|
.BR listen (2);
|
|
see the
|
|
.BR listen (2)
|
|
manual page for details.
|
|
.TP
|
|
.I /proc/sys/proc
|
|
This directory may be empty.
|
|
.TP
|
|
.I /proc/sys/sunrpc
|
|
This directory supports Sun remote procedure call for network file system
|
|
(NFS).
|
|
On some systems, it is not present.
|
|
.TP
|
|
.I /proc/sys/vm
|
|
This directory contains files for memory management tuning, buffer and
|
|
cache management.
|
|
.TP
|
|
.IR /proc/sys/vm/drop_caches " (since Linux 2.6.16)"
|
|
Writing to this file causes the kernel to drop clean caches, dentries and
|
|
inodes from memory, causing that memory to become free.
|
|
|
|
To free pagecache, use
|
|
.IR "echo 1 > /proc/sys/vm/drop_caches" ;
|
|
to free dentries and inodes, use
|
|
.IR "echo 2 > /proc/sys/vm/drop_caches" ;
|
|
to free pagecache, dentries and inodes, use
|
|
.IR "echo 3 > /proc/sys/vm/drop_caches" .
|
|
|
|
Because this is a nondestructive operation and dirty objects
|
|
are not freeable, the
|
|
user should run
|
|
.BR sync (8)
|
|
first.
|
|
.TP
|
|
.IR /proc/sys/vm/legacy_va_layout " (since Linux 2.6.9)"
|
|
.\" The following is from Documentation/filesystems/proc.txt
|
|
If nonzero, this disables the new 32-bit memory-mapping layout;
|
|
the kernel will use the legacy (2.4) layout for all processes.
|
|
.TP
|
|
.IR /proc/sys/vm/memory_failure_early_kill " (since Linux 2.6.32)"
|
|
.\" The following is based on the text in Documentation/sysctl/vm.txt
|
|
Control how to kill processes when an uncorrected memory error
|
|
(typically a 2-bit error in a memory module)
|
|
that cannot be handled by the kernel
|
|
is detected in the background by hardware.
|
|
In some cases (like the page still having a valid copy on disk),
|
|
the kernel will handle the failure
|
|
transparently without affecting any applications.
|
|
But if there is no other up-to-date copy of the data,
|
|
it will kill processes to prevent any data corruptions from propagating.
|
|
|
|
The file has one of the following values:
|
|
.RS
|
|
.IP 1: 4
|
|
Kill all processes that have the corrupted-and-not-reloadable page mapped
|
|
as soon as the corruption is detected.
|
|
Note this is not supported for a few types of pages, like kernel internally
|
|
allocated data or the swap cache, but works for the majority of user pages.
|
|
.IP 0: 4
|
|
Only unmap the corrupted page from all processes and only kill a process
|
|
who tries to access it.
|
|
.RE
|
|
.IP
|
|
The kill is performed using a
|
|
.B SIGBUS
|
|
signal with
|
|
.I si_code
|
|
set to
|
|
.BR BUS_MCEERR_AO .
|
|
Processes can handle this if they want to; see
|
|
.BR sigaction (2)
|
|
for more details.
|
|
|
|
This feature is only active on architectures/platforms with advanced machine
|
|
check handling and depends on the hardware capabilities.
|
|
|
|
Applications can override the
|
|
.I memory_failure_early_kill
|
|
setting individually with the
|
|
.BR prctl (2)
|
|
.B PR_MCE_KILL
|
|
operation.
|
|
.IP
|
|
Only present if the kernel was configured with
|
|
.BR CONFIG_MEMORY_FAILURE .
|
|
.TP
|
|
.IR /proc/sys/vm/memory_failure_recovery " (since Linux 2.6.32)"
|
|
.\" The following is based on the text in Documentation/sysctl/vm.txt
|
|
Enable memory failure recovery (when supported by the platform)
|
|
.RS
|
|
.IP 1: 4
|
|
Attempt recovery.
|
|
.IP 0: 4
|
|
Always panic on a memory failure.
|
|
.RE
|
|
.IP
|
|
Only present if the kernel was configured with
|
|
.BR CONFIG_MEMORY_FAILURE .
|
|
.TP
|
|
.IR /proc/sys/vm/oom_dump_tasks " (since Linux 2.6.25)"
|
|
.\" The following is from Documentation/sysctl/vm.txt
|
|
Enables a system-wide task dump (excluding kernel threads) to be
|
|
produced when the kernel performs an OOM-killing.
|
|
The dump includes the following information
|
|
for each task (thread, process):
|
|
thread ID, real user ID, thread group ID (process ID),
|
|
virtual memory size, resident set size,
|
|
the CPU that the task is scheduled on,
|
|
oom_adj score (see the description of
|
|
.IR /proc/[pid]/oom_adj ),
|
|
and command name.
|
|
This is helpful to determine why the OOM-killer was invoked
|
|
and to identify the rogue task that caused it.
|
|
|
|
If this contains the value zero, this information is suppressed.
|
|
On very large systems with thousands of tasks,
|
|
it may not be feasible to dump the memory state information for each one.
|
|
Such systems should not be forced to incur a performance penalty in
|
|
OOM situations when the information may not be desired.
|
|
|
|
If this is set to nonzero, this information is shown whenever the
|
|
OOM-killer actually kills a memory-hogging task.
|
|
|
|
The default value is 0.
|
|
.TP
|
|
.IR /proc/sys/vm/oom_kill_allocating_task " (since Linux 2.6.24)"
|
|
.\" The following is from Documentation/sysctl/vm.txt
|
|
This enables or disables killing the OOM-triggering task in
|
|
out-of-memory situations.
|
|
|
|
If this is set to zero, the OOM-killer will scan through the entire
|
|
tasklist and select a task based on heuristics to kill.
|
|
This normally selects a rogue memory-hogging task that
|
|
frees up a large amount of memory when killed.
|
|
|
|
If this is set to nonzero, the OOM-killer simply kills the task that
|
|
triggered the out-of-memory condition.
|
|
This avoids a possibly expensive tasklist scan.
|
|
|
|
If
|
|
.I /proc/sys/vm/panic_on_oom
|
|
is nonzero, it takes precedence over whatever value is used in
|
|
.IR /proc/sys/vm/oom_kill_allocating_task .
|
|
|
|
The default value is 0.
|
|
.TP
|
|
.I /proc/sys/vm/overcommit_memory
|
|
This file contains the kernel virtual memory accounting mode.
|
|
Values are:
|
|
.RS
|
|
.IP
|
|
0: heuristic overcommit (this is the default)
|
|
.br
|
|
1: always overcommit, never check
|
|
.br
|
|
2: always check, never overcommit
|
|
.RE
|
|
.IP
|
|
In mode 0, calls of
|
|
.BR mmap (2)
|
|
with
|
|
.B MAP_NORESERVE
|
|
are not checked, and the default check is very weak,
|
|
leading to the risk of getting a process "OOM-killed".
|
|
Under Linux 2.4 any nonzero value implies mode 1.
|
|
In mode 2 (available since Linux 2.6), the total virtual address space
|
|
on the system is limited to (SS + RAM*(r/100)),
|
|
where SS is the size of the swap space, and RAM
|
|
is the size of the physical memory, and r is the contents of the file
|
|
.IR /proc/sys/vm/overcommit_ratio .
|
|
.TP
|
|
.I /proc/sys/vm/overcommit_ratio
|
|
See the description of
|
|
.IR /proc/sys/vm/overcommit_memory .
|
|
.TP
|
|
.IR /proc/sys/vm/panic_on_oom " (since Linux 2.6.18)"
|
|
.\" The following is adapted from Documentation/sysctl/vm.txt
|
|
This enables or disables a kernel panic in
|
|
an out-of-memory situation.
|
|
|
|
If this file is set to the value 0,
|
|
the kernel's OOM-killer will kill some rogue process.
|
|
Usually, the OOM-killer is able to kill a rogue process and the
|
|
system will survive.
|
|
|
|
If this file is set to the value 1,
|
|
then the kernel normally panics when out-of-memory happens.
|
|
However, if a process limits allocations to certain nodes
|
|
using memory policies
|
|
.RB ( mbind (2)
|
|
.BR MPOL_BIND )
|
|
or cpusets
|
|
.RB ( cpuset (7))
|
|
and those nodes reach memory exhaustion status,
|
|
one process may be killed by the OOM-killer.
|
|
No panic occurs in this case:
|
|
because other nodes' memory may be free,
|
|
this means the system as a whole may not have reached
|
|
an out-of-memory situation yet.
|
|
|
|
If this file is set to the value 2,
|
|
the kernel always panics when an out-of-memory condition occurs.
|
|
|
|
The default value is 0.
|
|
1 and 2 are for failover of clustering.
|
|
Select either according to your policy of failover.
|
|
.TP
|
|
.IR /proc/sys/vm/swappiness
|
|
.\" The following is from Documentation/sysctl/vm.txt
|
|
The value in this file controls how aggressively the kernel will swap
|
|
memory pages.
|
|
Higher values increase agressiveness, lower values
|
|
decrease aggressiveness.
|
|
The default value is 60.
|
|
.TP
|
|
.IR /proc/sysrq-trigger " (since Linux 2.4.21)"
|
|
Writing a character to this file triggers the same SysRq function as
|
|
typing ALT-SysRq-<character> (see the description of
|
|
.IR /proc/sys/kernel/sysrq ).
|
|
This file is normally only writable by
|
|
.IR root .
|
|
For further details see the kernel source file
|
|
.IR Documentation/sysrq.txt .
|
|
.TP
|
|
.I /proc/sysvipc
|
|
Subdirectory containing the pseudo-files
|
|
.IR 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
|
|
.BR ipcs (1).
|
|
These files have headers and are formatted (one IPC object per line)
|
|
for easy understanding.
|
|
.BR svipc (7)
|
|
provides further background on the information shown by these files.
|
|
.TP
|
|
.I /proc/tty
|
|
Subdirectory containing the pseudo-files and subdirectories for
|
|
tty drivers and line disciplines.
|
|
.TP
|
|
.I /proc/uptime
|
|
This file contains two numbers: the uptime of the system (seconds),
|
|
and the amount of time spent in idle process (seconds).
|
|
.TP
|
|
.I /proc/version
|
|
This string identifies the kernel version that is currently running.
|
|
It includes the contents of
|
|
.IR /proc/sys/kernel/ostype ,
|
|
.I /proc/sys/kernel/osrelease
|
|
and
|
|
.IR /proc/sys/kernel/version .
|
|
For example:
|
|
.nf
|
|
.in -2
|
|
.ft CW
|
|
Linux version 1.0.9 (quinlan@phaze) #1 Sat May 14 01:51:54 EDT 1994
|
|
.ft
|
|
.in +2
|
|
.fi
|
|
.\" FIXME Document /proc/timer_list
|
|
.\" .TP
|
|
.\" .IR /proc/timer_list " (since Linux 2.6.21)"
|
|
.\" See the 2.6.21 Change log
|
|
.\" FIXME Document /proc/timer_stats
|
|
.\" .TP
|
|
.\" .IR /proc/timer_stats " (since Linux 2.6.21)"
|
|
.\" See the 2.6.21 Change log
|
|
.TP
|
|
.IR /proc/vmstat " (since Linux 2.6)"
|
|
This file displays various virtual memory statistics.
|
|
.TP
|
|
.IR /proc/zoneinfo " (since Linux 2.6.13)"
|
|
This file display information about memory zones.
|
|
This is useful for analyzing virtual memory behavior.
|
|
.\" FIXME more should be said about /proc/zoneinfo
|
|
.SH NOTES
|
|
Many strings (i.e., the environment and command line) are in
|
|
the internal format, with subfields terminated by null bytes (\(aq\\0\(aq),
|
|
so you
|
|
may find that things are more readable if you use \fIod \-c\fP or \fItr
|
|
"\\000" "\\n"\fP to read them.
|
|
Alternatively, \fIecho \`cat <file>\`\fP works well.
|
|
|
|
This manual page is incomplete, possibly inaccurate, and is the kind
|
|
of thing that needs to be updated very often.
|
|
.\" .SH ACKNOWLEDGEMENTS
|
|
.\" The material on /proc/sys/fs and /proc/sys/kernel is closely based on
|
|
.\" kernel source documentation files written by Rik van Riel.
|
|
.SH "SEE ALSO"
|
|
.BR cat (1),
|
|
.BR dmesg (1),
|
|
.BR find (1),
|
|
.BR free (1),
|
|
.BR ps (1),
|
|
.BR tr (1),
|
|
.BR uptime (1),
|
|
.BR chroot (2),
|
|
.BR mmap (2),
|
|
.BR readlink (2),
|
|
.BR syslog (2),
|
|
.BR slabinfo (5),
|
|
.BR hier (7),
|
|
.BR time (7),
|
|
.BR arp (8),
|
|
.BR hdparm (8),
|
|
.BR ifconfig (8),
|
|
.BR init (8),
|
|
.BR lsmod (8),
|
|
.BR lspci (8),
|
|
.BR mount (8),
|
|
.BR netstat (8),
|
|
.BR procinfo (8),
|
|
.BR route (8)
|
|
.br
|
|
The kernel source files:
|
|
.IR Documentation/filesystems/proc.txt ,
|
|
.IR Documentation/sysctl/vm.txt
|