sysctl 实用程序允许 Linux 管理员在运行时查询和修改内核参数。例如,要将 Linux 系统的 swappiness 更改为 0,我们可以:
echo 0 > /proc/sys/vm/swappiness
或者我们可以使用sysctl
:
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.conf
和20-quiet-printk.conf
表示什么?
配置文件名称开头的数字用作对它们进行排序的一种易于阅读的方式,目的是定义它们包含的条目之间的优先顺序。
从
man 5 sysctl.d
1(强调我的):1 手册页作为软件包的
sysctl.d
一部分提供,systemd
引用的文本来自 Arch Linux 上的 244.3 版本。措辞与Linux 手册页项目中当前可用的版本和您可以在freedesktop.org上找到的版本在某种程度上有所不同,但并不显着(出于本 Q/A 的目的)。前缀建立了读取和应用文件的自然顺序。在配置冲突的情况下,中的设置
highnumber-something
将可靠地覆盖lownumber-something
.通常,以 为后缀的 Linux 目录
.d
(例如/etc/sysctl.d
或/etc/yum.repos.d
)包含配置文件,它们本身通常以.conf
. 这些目录中的文件将按字典顺序排序和读取。为了让目录中的文件
.d
以所需的顺序执行,在另一个之前加载一些配置,然后作为约定,我们在文件名前加上一个数字,以便更容易地控制文件的读取顺序。例如,如果您有文件:
它们将按此顺序排序和阅读。
没有数字前缀的相同文件将按顺序排序:
您可以看到数字前缀如何帮助实现所需的顺序。