/proc/sys/kernel/ - control a range of kernel parameters
- /proc/sys/kernel/
- This directory contains files controlling a range of kernel parameters, as
described below.
- /proc/sys/kernel/acct
- This file contains three numbers: highwater, lowwater, and
frequency. If BSD-style process accounting is enabled, these values
control its behavior. 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% 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.
- /proc/sys/kernel/auto_msgmni (Linux 2.6.27 to Linux 3.18)
- From Linux 2.6.27 to Linux 3.18, this file was used to control recomputing
of the value in /proc/sys/kernel/msgmni upon the addition or
removal of memory or upon IPC namespace creation/removal. Echoing
"1" into this file enabled msgmni automatic recomputing
(and triggered a recomputation of msgmni based on the current
amount of available memory and number of IPC namespaces). Echoing
"0" disabled automatic recomputing. (Automatic recomputing was
also disabled if a value was explicitly assigned to
/proc/sys/kernel/msgmni.) The default value in auto_msgmni
was 1.
- Since Linux 3.19, the content of this file has no effect (because
msgmni defaults to near the maximum value possible), and reads from
this file always return the value "0".
- /proc/sys/kernel/cap_last_cap (since Linux 3.2)
- See capabilities(7).
- /proc/sys/kernel/cap-bound (from Linux 2.2 to Linux 2.6.24)
- This file holds the value of the kernel capability bounding set
(expressed as a signed decimal number). This set is ANDed against the
capabilities permitted to a process during 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 capabilities(7).
- /proc/sys/kernel/core_pattern
- See core(5).
- /proc/sys/kernel/core_pipe_limit
- See core(5).
- /proc/sys/kernel/core_uses_pid
- See core(5).
- /proc/sys/kernel/ctrl-alt-del
- This file controls the handling of Ctrl-Alt-Del from the keyboard. When
the value in this file is 0, Ctrl-Alt-Del is trapped and sent to the
init(1) program to handle a graceful restart. When the value is
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.
- /proc/sys/kernel/dmesg_restrict (since Linux 2.6.37)
- The value in this file determines who can see kernel syslog contents. A
value of 0 in this file imposes no restrictions. If the value is 1, only
privileged users can read the kernel syslog. (See syslog(2) for
more details.) Since Linux 3.4, only users with the CAP_SYS_ADMIN
capability may change the value in this file.
- /proc/sys/kernel/domainname and
/proc/sys/kernel/hostname
- can be used to set the NIS/YP domainname and the hostname of your box in
exactly the same way as the commands domainname(1) and
hostname(1), that is:
-
# echo 'darkstar' > /proc/sys/kernel/hostname
# echo 'mydomain' > /proc/sys/kernel/domainname
- has the same effect as
-
# hostname 'darkstar'
# domainname 'mydomain'
- Note, however, that the classic darkstar.frop.org has the hostname
"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.
- /proc/sys/kernel/hotplug
- This file contains the pathname for the hotplug policy agent. The default
value in this file is /sbin/hotplug.
- /proc/sys/kernel/htab-reclaim (before Linux 2.4.9.2)
- (PowerPC only) If this file is set to a nonzero value, the PowerPC htab
(see kernel file Documentation/powerpc/ppc_htab.txt) is pruned each
time the system hits the idle loop.
- /proc/sys/kernel/keys/
- This directory contains various files that define parameters and limits
for the key-management facility. These files are described in
keyrings(7).
- /proc/sys/kernel/kptr_restrict (since Linux 2.6.38)
- The value in this file determines whether kernel addresses are exposed via
/proc files and other interfaces. A value of 0 in this file imposes
no restrictions. If the value is 1, kernel pointers printed using the
%pK format specifier will be replaced with zeros unless the user
has the CAP_SYSLOG capability. If the value is 2, kernel pointers
printed using the %pK format specifier will be replaced with zeros
regardless of the user's capabilities. The initial default value for this
file was 1, but the default was changed to 0 in Linux 2.6.39. Since Linux
3.4, only users with the CAP_SYS_ADMIN capability can change the
value in this file.
- /proc/sys/kernel/l2cr
- (PowerPC only) This file contains a flag that controls the L2 cache of G3
processor boards. If 0, the cache is disabled. Enabled if nonzero.
- /proc/sys/kernel/modprobe
- This file contains the pathname for the kernel module loader. The default
value is /sbin/modprobe. The file is present only if the kernel is
built with the CONFIG_MODULES (CONFIG_KMOD in Linux 2.6.26
and earlier) option enabled. It is described by the Linux kernel source
file Documentation/kmod.txt (present only in Linux 2.4 and
earlier).
- /proc/sys/kernel/modules_disabled (since Linux 2.6.31)
- A toggle value indicating if modules are allowed to be loaded in an
otherwise modular kernel. This toggle defaults to off (0), but can be set
true (1). Once true, modules can be neither loaded nor unloaded, and the
toggle cannot be set back to false. The file is present only if the kernel
is built with the CONFIG_MODULES option enabled.
- /proc/sys/kernel/msgmax (since Linux 2.2)
- This file defines a system-wide limit specifying the maximum number of
bytes in a single message written on a System V message queue.
- /proc/sys/kernel/msgmni (since Linux 2.4)
- This file defines the system-wide limit on the number of message queue
identifiers. See also /proc/sys/kernel/auto_msgmni.
- /proc/sys/kernel/msgmnb (since Linux 2.2)
- This file defines a system-wide parameter used to initialize the
msg_qbytes setting for subsequently created message queues. The
msg_qbytes setting specifies the maximum number of bytes that may
be written to the message queue.
- /proc/sys/kernel/ngroups_max (since Linux 2.6.4)
- This is a read-only file that displays the upper limit on the number of a
process's group memberships.
- /proc/sys/kernel/ns_last_pid (since Linux 3.3)
- See pid_namespaces(7).
- /proc/sys/kernel/ostype and /proc/sys/kernel/osrelease
- These files give substrings of /proc/version.
- /proc/sys/kernel/overflowgid and
/proc/sys/kernel/overflowuid
- These files duplicate the files /proc/sys/fs/overflowgid and
/proc/sys/fs/overflowuid.
- /proc/sys/kernel/panic
- This file 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 watchdog device driver, the
recommended setting is 60.
- /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
/proc/sys/kernel/panic file is also nonzero, then the machine will
be rebooted.
- /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). PIDs greater than this
value are not allocated; thus, the value in this file also acts as a
system-wide limit on the total number of processes and threads. 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
pid_max. On 64-bit systems, pid_max can be set to any value
up to 2^22 (PID_MAX_LIMIT, approximately 4 million).
- /proc/sys/kernel/powersave-nap (PowerPC only)
- This file contains a flag. If set, Linux-PPC will use the "nap"
mode of powersaving, otherwise the "doze" mode will be
used.
- /proc/sys/kernel/printk
- See syslog(2).
- /proc/sys/kernel/pty (since Linux 2.6.4)
- This directory contains two files relating to the number of UNIX 98
pseudoterminals (see pts(4)) on the system.
- /proc/sys/kernel/pty/max
- This file defines the maximum number of pseudoterminals.
- /proc/sys/kernel/pty/nr
- This read-only file indicates how many pseudoterminals are currently in
use.
- /proc/sys/kernel/random/
- This directory contains various parameters controlling the operation of
the file /dev/random. See random(4) for further
information.
- /proc/sys/kernel/random/uuid (since Linux 2.4)
- Each read from this read-only file returns a randomly generated 128-bit
UUID, as a string in the standard UUID format.
- /proc/sys/kernel/randomize_va_space (since Linux 2.6.12)
- Select the address space layout randomization (ASLR) policy for the system
(on architectures that support ASLR). Three values are supported for this
file:
- 0
- Turn ASLR off. This is the default for architectures that don't support
ASLR, and when the kernel is booted with the norandmaps
parameter.
- 1
- Make the addresses of mmap(2) allocations, the stack, and the VDSO
page randomized. Among other things, this means that shared libraries will
be loaded at randomized addresses. The text segment of PIE-linked binaries
will also be loaded at a randomized address. This value is the default if
the kernel was configured with CONFIG_COMPAT_BRK.
- 2
- (Since Linux 2.6.25) Also support heap randomization. This value is the
default if the kernel was not configured with
CONFIG_COMPAT_BRK.
- /proc/sys/kernel/real-root-dev
- This file is documented in the Linux kernel source file
Documentation/admin-guide/initrd.rst (or
Documentation/initrd.txt before Linux 4.10).
- /proc/sys/kernel/reboot-cmd (Sparc only)
- This file seems to be a way to give an argument to the SPARC ROM/Flash
boot loader. Maybe to tell it what to do after rebooting?
- /proc/sys/kernel/rtsig-max
- (Up to and including Linux 2.6.7; see 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.
- /proc/sys/kernel/rtsig-nr
- (Up to and including Linux 2.6.7.) This file shows the number of POSIX
real-time signals currently queued.
- /proc/pid/sched_autogroup_enabled (since Linux 2.6.38)
- See sched(7).
- /proc/sys/kernel/sched_child_runs_first (since Linux 2.6.23)
- If this file contains the value zero, then, after a fork(2), the
parent is first scheduled on the CPU. If the file contains a nonzero
value, then the child is scheduled first on the CPU. (Of course, on a
multiprocessor system, the parent and the child might both immediately be
scheduled on a CPU.)
- /proc/sys/kernel/sched_rr_timeslice_ms (since Linux 3.9)
- See sched_rr_get_interval(2).
- /proc/sys/kernel/sched_rt_period_us (since Linux 2.6.25)
- See sched(7).
- /proc/sys/kernel/sched_rt_runtime_us (since Linux 2.6.25)
- See sched(7).
- /proc/sys/kernel/seccomp/ (since Linux 4.14)
- This directory provides additional seccomp information and configuration.
See seccomp(2) for further details.
- /proc/sys/kernel/sem (since Linux 2.4)
- This file contains 4 numbers defining limits for System V IPC semaphores.
These fields are, in order:
- SEMMSL
- The maximum semaphores per semaphore set.
- SEMMNS
- A system-wide limit on the number of semaphores in all semaphore
sets.
- SEMOPM
- The maximum number of operations that may be specified in a
semop(2) call.
- SEMMNI
- A system-wide limit on the maximum number of semaphore identifiers.
- /proc/sys/kernel/sg-big-buff
- This file shows the size of the generic SCSI device (sg) buffer. You can't
tune it just yet, but you could change it at compile time by editing
include/scsi/sg.h and changing the value of SG_BIG_BUFF.
However, there shouldn't be any reason to change this value.
- /proc/sys/kernel/shm_rmid_forced (since Linux 3.1)
- If this file is set to 1, all System V shared memory segments will be
marked for destruction as soon as the number of attached processes falls
to zero; in other words, it is no longer possible to create shared memory
segments that exist independently of any attached process.
- The effect is as though a shmctl(2) IPC_RMID is performed on
all existing segments as well as all segments created in the future (until
this file is reset to 0). Note that existing segments that are attached to
no process will be immediately destroyed when this file is set to 1.
Setting this option will also destroy segments that were created, but
never attached, upon termination of the process that created the segment
with shmget(2).
- Setting this file to 1 provides a way of ensuring that all System V shared
memory segments are counted against the resource usage and resource limits
(see the description of RLIMIT_AS in getrlimit(2)) of at
least one process.
- Because setting this file to 1 produces behavior that is nonstandard and
could also break existing applications, the default value in this file is
0. Set this file to 1 only if you have a good understanding of the
semantics of the applications using System V shared memory on your
system.
- /proc/sys/kernel/shmall (since Linux 2.2)
- This file contains the system-wide limit on the total number of pages of
System V shared memory.
- /proc/sys/kernel/shmmax (since Linux 2.2)
- 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 1 GB are now supported in the kernel. This value
defaults to SHMMAX.
- /proc/sys/kernel/shmmni (since Linux 2.4)
- This file specifies the system-wide maximum number of System V shared
memory segments that can be created.
- /proc/sys/kernel/sysctl_writes_strict (since Linux 3.16)
- The value in this file determines how the file offset affects the behavior
of updating entries in files under /proc/sys. The file has three
possible values:
- -1
- This provides legacy handling, with no printk warnings. Each
write(2) must fully contain the value to be written, and multiple
writes on the same file descriptor will overwrite the entire value,
regardless of the file position.
- 0
- (default) This provides the same behavior as for -1, but printk warnings
are written for processes that perform writes when the file offset is not
0.
- 1
- Respect the file offset when writing strings into /proc/sys files.
Multiple writes will append to the value buffer. Anything written
beyond the maximum length of the value buffer will be ignored. Writes to
numeric /proc/sys entries must always be at file offset 0 and the
value must be fully contained in the buffer provided to
write(2).
- /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
- Bit mask 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 signaling of processes (term, kill, oom-kill)
- 128
- Allow reboot/poweroff
- 256
- Allow nicing of all real-time tasks
- This file is present only if the CONFIG_MAGIC_SYSRQ kernel
configuration option is enabled. For further details see the Linux kernel
source file Documentation/admin-guide/sysrq.rst (or
Documentation/sysrq.txt before Linux 4.10).
- /proc/sys/kernel/version
- This file contains a string such as:
-
#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 following it indicates the time the kernel was
built.
- /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.
- Since Linux 4.1, the value that can be written to threads-max is
bounded. The minimum value that can be written is 20. The maximum value
that can be written is given by the constant FUTEX_TID_MASK
(0x3fffffff). If a value outside of this range is written to
threads-max, the error EINVAL occurs.
- The value written is checked against the available RAM pages. If the
thread structures would occupy too much (more than 1/8th) of the available
RAM pages, threads-max is reduced accordingly.
- /proc/sys/kernel/yama/ptrace_scope (since Linux 3.5)
- See ptrace(2).
- /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.