The /sbin/sysctl command is used to view, set, and
automate kernel settings in the /proc/sys/
directory.
For a quick overview of all settings configurable in the
/proc/sys/ directory, type the /sbin/sysctl
-a command as root. This creates a large, comprehensive
list, a small portion of which looks something like the following:
net.ipv4.route.min_delay = 2
kernel.sysrq = 0
kernel.sem = 250 32000 32 128 |
This is the same information seen if each of the files were viewed
individually. The only difference is the file location. For example,
the /proc/sys/net/ipv4/route/min_delay file is
listed as net.ipv4.route.min_delay,
with the directory slashes replaced by dots and the
proc.sys portion assumed.
The sysctl command can be used in place of
echo to assign values to writable files in the
/proc/sys/ directory. For example, instead of using
the command
echo 1 > /proc/sys/kernel/sysrq |
use the equivalent sysctl command as follows:
sysctl -w kernel.sysrq="1"
kernel.sysrq = 1 |
While quickly setting single values like this in
/proc/sys/ is helpful during testing, this method
does not work as well on a production system as special settings within
/proc/sys/ are lost when the machine is
rebooted. To preserve custom settings, add them to the
/etc/sysctl.conf file.
Each time the system boots, the init program runs the
/etc/rc.d/rc.sysinit script. This script contains a
command to execute sysctl using
/etc/sysctl.conf to determine the values passed to
the kernel. Any values added to /etc/sysctl.conf
therefore take effect each time the system boots.