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 有一个系统控制页面其中提到了数字的重要性:
注意:从版本 207 和 21x 开始,系统仅应用
/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
?
答案1
配置文件名称开头的数字用作对它们进行排序的易于阅读的方式,目的是定义它们包含的条目之间的优先顺序。
从man 5 sysctl.d
1(强调我的):
配置目录和优先级
...
所有配置文件都按文件名按字典顺序排序,无论它们驻留在哪个目录中。如果多个文件指定相同的选项,则文件中具有字典顺序最新名称的条目将优先。建议在所有文件名前添加两位数字和破折号作为前缀,以简化文件的排序。
1 的 手册页sysctl.d
作为软件包的一部分提供systemd
,引用的文本来自 Arch Linux 上的版本 244.3。措辞与目前在 TheLinux 手册页项目以及您可以找到的版本自由桌面网站。
答案2
前缀建立了读取和应用文件的自然顺序。如果配置发生冲突, 中的设置highnumber-something
将可靠地覆盖lownumber-something
.
答案3
通常,以 后缀.d
(例如/etc/sysctl.d
或 )的 Linux 目录/etc/yum.repos.d
包含配置文件,这些文件本身通常以.conf
.此类目录中的文件将按字典顺序排序和读取。
为了让.d
目录中的文件按照所需的顺序执行,在另一个配置之前加载某些配置,然后作为约定,我们在文件名前加上一个数字,以更轻松地控制文件的读取顺序。
例如,如果您有以下文件:
10-firstFilename.conf
20-anotherFile.conf
30-lastfileToRun.conf
它们将按此顺序排序和读取。
没有数字前缀的相同文件将按以下顺序排序:
anotherFile.conf
firstFilename.conf
lastfiletoRun.conf
您可以看到数字前缀如何帮助实现所需的顺序。