我正在尝试大Linux 系统运行时参数的改变通过 sysfs 虚拟文件系统公开。
维护这些参数以便它们在 RHEL/CentOS 风格的系统上重启后仍然有效的方法是什么?
这仅仅是将命令转储到 /etc/rc.local 的情况吗?是否有适合此操作的 init 脚本?我还在从配置管理的角度考虑标准化。是否有干净的 sysfs 等效于sysctl
?
答案1
如果是我,我可能会创建一个/etc/sysfs.conf
,以及一个/etc/init.d/sysfsutils
init 脚本。然后我可以将我的所有 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
应该对此有帮助。