- Published on
sysctl.d 未生效问题
- Authors
- Name
- ttyS3
新装的 Arch , 发现 /etc/sysctl.d/01-sysrq.conf
里设置的 kernel.sysrq = 1
没有生效。
检测 /proc/sys/kernel/sysrq
的值发现是 16
先检查下 systemd 相关服务是否正常运行了, 结果是完全正常:
❯ systemctl status systemd-sysctl.service
● systemd-sysctl.service - Apply Kernel Variables
Loaded: loaded (/usr/lib/systemd/system/systemd-sysctl.service; static)
Active: active (exited) since Sun 2021-03-21 20:12:34 CST; 1h 45min ago
Docs: man:systemd-sysctl.service(8)
man:sysctl.d(5)
Process: 324 ExecStart=/usr/lib/systemd/systemd-sysctl (code=exited, status=0/SUCCESS)
Main PID: 324 (code=exited, status=0/SUCCESS)
测试sudo SYSTEMD_LOG_LEVEL=debug /usr/lib/systemd/systemd-sysctl
发现,sysrq
被 默认的规则
/usr/lib/sysctl.d/50-default.conf
覆盖掉了。
❯ rg sysrq /usr/lib/sysctl.d/50-default.conf
16:# Use kernel.sysrq = 1 to allow all keys.
17:# See https://www.kernel.org/doc/html/latest/admin-guide/sysrq.html for a list
19:kernel.sysrq = 16
由于我们的文件名是 01-sysrq.conf
, 在50之前执行,因此,我们需要系统默认配置执行完再覆盖,把文件名改成 99-sysrq.conf
即可:
❯ bat /etc/sysctl.d/99-sysrq.conf
# been set in 50-default.conf
# so we need override it later
kernel.sysrq = 1
refs
https://wiki.archlinux.org/index.php/sysctl#Configuration
https://wiki.archlinux.org/index.php/Keyboard_shortcuts#Kernel_(SysRq)