3.4. Using the sysctl Command
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.