E.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 の部分は前提とされます。
echo の代わりに sysctl コマンドを使用して、/proc/sys/ ディレクトリ内の書き込み可能なファイルに値を割り当てることができます。以下が例となります:
echo 1 > /proc/sys/kernel/sysrq
echo の代わりとして、相当する sysctl コマンドを以下の例のように使用します。
sysctl -w kernel.sysrq="1"
kernel.sysrq = 1
テスト中などには、/proc/sys/ 内にあるような単一の値を迅速に設定できると便利ですが、実稼働システムでは、/proc/sys/ 内の特殊な設定がマシンの再起動時に消去されてしまうため、このコマンドは適切に機能しません。カスタム設定を維持するには、/etc/sysctl.conf ファイルに追加する必要があります。
システムの起動時には毎回、init プログラムによって /etc/rc.d/rc.sysinit スクリプトが実行されます。このスクリプトには、/etc/sysctl.conf を使用して sysctl を実行し、カーネルに渡す値を決定するためのコマンドが含まれています。このため、/etc/sysctl.conf に追加された値はいずれも、システムの起動時に毎回有効となります。