sysctl.confは最後のゲームですか?

sysctl.confは最後のゲームですか?

sysctl.conf過去のゲームに関する公式文書はどこで見つけることができますか?

したがって、ファイルには2つの項目があります/etc/sysctl.conf

vm.swappiness=10
vm.swappiness=11

どちらが勝ちますか?最後のもの?ディレクトリにファイルがあるとどうなりますか/etc/sysctl.d

ベストアンサー1

このような正式な文書はないようです。sysctlアイテムは次のように処理されます。procpsとシステムですが、両方のプロジェクトのドキュメントは、同じ設定ファイル内のエントリを処理する方法を説明しています。

つまり、sysctl.conf他のファイル(そのファイルまたは別の場所)があっても、/etc/sysctl.dどのシステムロード設定が使用されているかに関係なく、最後のエントリが適用されます。

procps

アイテムの処理方法を理解するには、次の点procpsを見てください。ソースコードsysctl。これは、前の項目の知識なしに後の項目が処理されるため、最後の項目が勝利することを示します(該当するPreload関数を参照)。複数の設定ファイルがコマンドラインに提供されると、設定ファイルは次の説明に従って順番に処理されます。マニュアルページ:

このオプションは、引数がsysctl指定された順序で読み取られるファイルであることを意味します。

このオプションを使用すると、状況が少し複雑になります--system。しかし、少なくとも文書化されています。

すべてのシステム構成ファイルから設定をロードします。上から下に与えられた順序で、次のリストのディレクトリからファイルを読み込みます。指定されたファイル名を持つファイルがロードされると、後続のディレクトリにある同じ名前のファイルはすべて無視されます。

  • /run/sysctl.d/*.conf
  • /etc/sysctl.d/*.conf
  • /usr/local/lib/sysctl.d/*.conf
  • /usr/lib/sysctl.d/*.conf
  • /lib/sysctl.d/*.conf
  • /etc/sysctl.conf

文書が完全ではありません。前述のように、特定のファイルのエントリは順次適用され、同じ設定に対して以前に指定されたすべての値をオーバーライドします。さらにPreloadSystem関数を見ると、ファイルは名前順に処理され、/etc/sysctl.conf無条件(つまり以前のディレクトリの同じ名前のファイルは上書きされません。)

システム

systemdには独自のsysctlハンドラがあり、次のドキュメントで説明されています。このsysctl.dヘルプページ;優先順位に関するセクションがあります:

/etc/設定ファイルは、、、/run/および優先順位に従ってディレクトリから読み取られます。/usr/lib/これらの構成ディレクトリの各構成ファイルは、次の形式で名前が付けられます。filename.conf。のファイルは/etc/、と同じ名前のファイルを上書きします。のファイルを上書きします。/run//usr/lib//run//usr/lib/

[...] すべての構成ファイルは、そのファイルが置かれているディレクトリに関係なく、ファイル名に基づいてアルファベット順にソートされます。複数のファイルが同じオプションを指定する場合は、アルファベット順に最新の名前を持つファイルエントリが優先されます。ファイルの並べ替えを簡素化するには、すべてのファイル名の前に2桁の数字とダッシュを付けることをお勧めします。

同様に、単一の構成ファイルの後続の項目は前の項目を上書きします。

おすすめ記事