使 sysfs 参数在重启后保持不变的建议

使 sysfs 参数在重启后保持不变的建议

我正在尝试大Linux 系统运行时参数的改变通过 sysfs 虚拟文件系统公开。

维护这些参数以便它们在 RHEL/CentOS 风格的系统上重启后仍然有效的方法是什么?

这仅仅是将命令转储到 /etc/rc.local 的情况吗?是否有适合此操作的 init 脚本?我还在从配置管理的角度考虑标准化。是否有干净的 sysfs 等效于sysctl

答案1

如果是我,我可能会创建一个/etc/sysfs.conf,以及一个/etc/init.d/sysfsutilsinit 脚本。然后我可以将我的所有 sysfs 相关配置和选项与其他所有内容分开。使用 init 脚本,可以使用通过 SysV init 脚本管理服务和配置的标准习惯用法来管理和处理它(包括service sysfsutils [start|stop|reload|restart|status]在 RHEL/CentOS 上(需要一些额外的工作))。

即使我不关心脚本/etc/init.d/sysfsutils,我仍然会将选项放入其中/etc/sysfs.conf,然后从单独的脚本调用/处理该文件的内容(/etc/rc.local作为最后/懒惰的选项)。

注意:Debian 和基于 Debian 的发行版(Ubuntu 等)已经这样做了,并/etc/sysfs.conf使用其 sysfsutils 包发送了一个配置文件和初始化脚本。从 Debian/Ubuntu 框(或 sysfsutils 的 Debian 源包)中获取这两个文件可能是开始自己复制它的好方法。

答案2

您还可以根据要设置的内容尝试 udev 规则。例如,在我的系统上,我将 SSD 设置为使用deadline调度程序,方法是/etc/udev/rules.d/60-ssd-scheduler.rules包含以下内容:

# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"

你应该能够匹配任何 sysfs 属性通过 ATTR 机制。

答案3

尝试一下这个sysfsutils包。特别是,/etc/sysfs.conf应该对此有帮助。

答案4

对于 Fedora/RHEL/CentOS - 配置 sysfs 并使其在重启后继续存在的默认方法是使用 tuned。调整是一个通用的系统调优基础设施。对于系统文件系统参数,[sysfs]在您的配置文件中创建一个节,并为每个想要设置并在重启后保持不变的变量提供一行。

也作为 Lennart Poettering指出- systemd 具有通过放置代码片段来提供 sysfs 设置的本机功能/etc/tmpfiles.d/

相关内容