Sysctl

sysctl 配置文件中的數字代表什麼?

  • March 3, 2020

sysctl 實用程序允許 Linux 管理員在執行時查詢和修改核心參數。例如,要將 Linux 系統的 swappiness 更改為 0,我們可以:

  1. echo 0 > /proc/sys/vm/swappiness

或者我們可以使用sysctl

  1. sysctl -w vm.swappiness=0

為了使值持久化,Archwiki 建議vm.swappiness=0 寫入文件/etc/sysctl.d/99-swappiness.conf

對於持久靜默啟動,Archwiki 建議寫信kernel.printk = 3 3 3 3/etc/sysctl.d/20-quiet-printk.conf

同樣99-sysrq.conf,我的系統上有一個也可以在沒有數字的情況下工作。


Archwiki 有一個sysctl 頁面,其中提到了數字的重要性:

注意:從版本 207 和 21x 開始,systemd僅應用來自 /etc/sysctl.d/*.conf和的設置/usr/lib/sysctl.d/*.conf。如果您已自定義/etc/sysctl.conf,則需要將其重命名為 /etc/sysctl.d/99-sysctl.conf. 如果你有 eg /etc/sysctl.d/foo,你需要將它重命名為/etc/sysctl.d/foo.conf.


這裡的數字99-swappiness.conf20-quiet-printk.conf表示什麼?

配置文件名稱開頭的數字用作對它們進行排序的一種易於閱讀的方式,目的是定義它們包含的條目之間的優先順序。

man 5 sysctl.d1(強調我的):

配置目錄和優先級

所有配置文件都按其文件名按字典順序排序,無論它們位於哪個目錄中。如果多個文件指定相同的選項,則文件中具有字典順序最新名稱的條目將優先。建議在所有文件名前加上一個兩位數字和一個破折號,以簡化文件的排序。


1 手冊頁作為軟體包的sysctl.d一部分提供,systemd引用的文本來自 Arch Linux 上的 244.3 版本。措辭與Linux 手冊頁項目中目前可用的版本和您可以在freedesktop.org上找到的版本在某種程度上有所不同,但並不顯著(出於本 Q/A 的目的)。

引用自:https://unix.stackexchange.com/questions/570770