5.4. sysctl コマンドの使用

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

/proc/sys/ディレクトリで設定できるすべての設定の概要を見るには、rootとして /sbin/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に 追加された値は、システムがブートするたびに反映されます。