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に 追加された値は、毎回システムブート後に有効となります。