一般的なLinuxマシンでは、/proc/*
にあるファイルを変更することでカーネル構成を変更できます。
たとえば、特定のネットワークインターフェイスのIPv6 accept_dad
パラメーター(たとえば、eth0
)の場合、次のファイルを変更します。
/proc/sys/net/ipv6/conf/eth0/accept_dad
しかし、私が最近発見したように、広く普及しているツールsysctl
があります。これは同じ目的を持ち、次のように機能します。
sysctl -w net.ipv6.conf.eth0.accept_dad=1
私の質問は、いつどのツールを使用すべきかということです。私の本能では、自分が何をしているのかがわかっている場合はファイルに直接書き込む必要がありますが、検証が必要な場合はsysctl
を使用する必要があります。
sysctl
は、直接制御できるもののさらに別のレイヤーであるため、これを使用することで、ファイルに直接書き込むことで回避できる潜在的なバグにさらされていると思います。
sysctl
は、さまざまなカーネル属性を読み取って変更するためのツールです。 Linuxだけでなく、OpenBSDやFreeBSDなど、多くのUnixライクなオペレーティングシステムで利用できます。 sysctl
は通常、シェルコマンドとシステムコールの両方で使用できます。
Linuxでは、sysctl
メカニズムは、/proc/sys
の下の procfs 仮想ファイルシステムの一部として追加で公開されます。
sysctl
syscall Linuxでは非推奨 ;であることに注意してください。代わりに/proc/sys
を使用することをお勧めします(直接またはsysctl
シェルコマンドを介して)。
参照:
sysctl
は、/proc
と対話するためのユーティリティです。一般的に、彼らは同じことを成し遂げます。数年(数十年?)前、カーネルパラメータを調整する唯一の方法は、/proc
の「ファイル」を手動で編集することでしたが、sysctl
は後でより文明的な検索方法として登場しました。カーネルパラメータを変更します。
注目すべきことに、/proc
での編集は再起動後も存続しません。これは、実験している場合に便利です。ファイル/etc/sysctl.conf
は、起動時に維持したいsysctl
の変更を保存する場所です。代わりにファイルを編集するのが本当に好きな場合は、そこで変更を加え、sysctl -p
を呼び出して変更を実行することをお勧めします。