Linuxマシン(Redhat 6)があります。
/etc/sysctl.conf
からすべてのパラメーターを出力すると、最大20しか表示されませんが、sysctl -a
を実行すると、200を超える数が表示されます。
だからどこからsysctl -a
これらのすべてのパラメータを印刷しますか?
または例えば私たちがするとき
sysctl -w variable=value
変数を保存する場所を知る方法は?
動的または静的な場合、各パラメーターをどのように知るのですか?
Sysctl 設定はカーネルに保存されます。これらの設定はカーネルの動作に影響します。基本的に、それらはカーネルの変数であり、システムで実行されているプログラムが読み書きできます。
カーネルの起動時、各sysctl設定にはデフォルト値があります。この値は、sysctl
コマンドなどのプログラムによって、またはLinuxでは、/proc/sys
の下の対応するファイルに書き込むことによって、いつでも変更できます。
ファイル/etc/sysctl.conf
は、実行時の設定値を決定しません。カーネルにコンパイルされたデフォルト値から一部の設定を変更するために、ブート時にのみ使用されます。 /etc/sysctl.conf
にいくつかの変更を加えた場合は、sysctlの「サービス」を再起動することにより、全体としてそれらを適用できます。sysctlサービスは実行中のプロセスに対応しておらず、単にロードする疑似サービスです起動時にカーネルに設定します。
再起動しても値が保持されるように設定を変更する場合は、/etc/sysctl.conf
に追加します。設定を一時的に適用するか、試してみるには、sysctl
またはecho … >/proc/sys/…
を使用します。
各パラメーターが動的か静的かを知る方法は?
sysctl
のすべてのカーネルパラメータは動的です。カーネルのバージョンに応じて番号を確認する場合、sysctl -a | wc -l
は1000以上である必要があります。
値を読み取るには、いくつかのスマートオプションがあります。
sysctl net.ipv4.ip_forward # display specific parameter
sysctl net.ipv4 # display all net.ipv4.* parameters
sysctl -a # display all parameters
また、値を永続的に書き込むには、/etc/sysctl.conf
または/etc/sysctl.d/
ディレクトリ内の任意のconfファイルを使用できます。confファイルを更新したら、構成ファイルを再ロードする必要があります。
sysctl -p [filename]
もちろん、Gillesが概説したように、sysctl
“サービス”を再起動するだけです。
Sysctl -aはどこからすべてのカーネルパラメータを出力しますか?
疑似ファイルシステムprocfs(man procfs)から。カーネルデータ構造へのインターフェイスを提供します。通常、システムによって/proc
に自動的にマウントされます。