E.4. sysctl コマンドの使用
/sbin/sysctl コマンドを使用して、
/proc/sys/
ディレクトリーのカーネル設定を表示、設定、および自動化します。
/proc/sys/
ディレクトリーで設定可能なすべての設定の概要は、root で /sbin/sysctl -a コマンドを入力します。これにより、以下のような小規模な一覧である、大規模で包括的な一覧が作成されます。
net.ipv4.route.min_pmtu = 552 kernel.sysrq = 0 kernel.sem = 250 32000 32 128
これは、各ファイルが個別に表示されていた場合と同じ情報になります。唯一の違いはファイルの場所です。たとえば、
/proc/sys/net/ipv4/route/min_pmtu
ファイルは net.ipv4.route.min_pmtu
として一覧表示され、ディレクトリースラッシュはドットと 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/sysctl.conf
ファイルは、initscripts パッケージでインストールして、一部のカーネルのデフォルト値を上書きするため、使用できるパラメーターは一部だけ含まれます。sysctl -a コマンドを使用して、sysctl キー形式でパラメーターを一覧表示します。設定可能な設定の詳細は、/usr/share/doc/kernel-doc-kernel_version/Documentation/networking/ip-sysctl.txt
ファイルを参照してください。
システムを起動するたびに、init プログラムは
/etc/rc.d/rc.sysinit
スクリプトを実行します。このスクリプトには、/etc/ sysctl.conf
を使用して sysctl を実行し、カーネルに渡される値を決定するコマンドが含まれます。したがって、/etc/sysctl.conf
に追加した値は、システムが起動するたびに有効になります。sysctl の解析後に読み込まれるモジュールは、この設定を上書きする可能性があることに注意してください。