sysctlの使用

sysctlコマンドは/proc/sys/ディレクトリ内のカーネル設定を、閲覧、設定、自動化するために用います。

/proc/sys/ディレクトリ内のすべての可能な設定の概要を知るには、rootとしてsysctl -aコマンドを入力します。これは大きく包括的な一覧を作成します。その一部は以下のようになっています。

net.ipv4.route.min_delay = 2
kernel.sysrq = 0
kernel.sem = 250     32000     32     128

これはファイルを個別に見た場合と同じ基本情報です。唯一の違いはファイルロケーションです。/proc/sys/net/ipv4/route/min_delay/net.ipv4.route.min_delayで示されます。ディレクトリのスラッシュはドットと仮定したproc.sysに置き換えられています。

sysctlコマンドは、echoの代わりに、/proc/sys/ディレクトリの書き換え可能ファイルに値を割り当てるために使います。例えば、以下のコマンドを用いる代わりに使います。

echo 1 > /proc/sys/kernel/sysrq

このsysctlコマンドは以下の様に使います。

sysctl -w kernel.sysrq="1"
kernel.sysrq = 1

/proc/sys/にこうした単一の値をすぐに設定できるのでテスト中は重宝しますが、/proc/sys/の特別な設定はすべてマシンの再起動時に失われるので生産システム上では機能しません。カーネルに対しずっと有効にしておきたい設定を保存するには、その設定を/etc/sysctl.confファイルに追加します。

システムがブートするたびに、/etc/rc.d/rc.sysinitスクリプトがinitによって実行されます。このスクリプトには/etc/sysctl.confを設定する値として使用されるsysctlを実行するコマンドが含まれています。ですから、/etc/sysctl.confに追加された値は、システムブート後に有効となります。