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に 追加された値は、システムがブートするたびに反映されます。