sysctl配置文件中的数字代表什么?

sysctl配置文件中的数字代表什么?

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 有一个系统控制页面其中提到了数字的重要性:

注意:从版本 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.d1(强调我的):

配置目录和优先级

...

所有配置文件都按文件名按字典顺序排序,无论它们驻留在哪个目录中。如果多个文件指定相同的选项,则文件中具有字典顺序最新名称的条目将优先。建议在所有文件名前添加两位数字和破折号作为前缀,以简化文件的排序。


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

您可以看到数字前缀如何帮助实现所需的顺序。

相关内容