Linux

無論 kernel.sysrq 設置如何,如何確保始終啟用 SysRq?

  • September 8, 2018

一些 Linux 發行版kernel.sysrq=16意味著只允許 Sysrq+s(同步)。例如:Fedora(25 和 28)在/usr/lib/sysctl.d/50-default.conf

我必須/etc/sysctl.d/95-sysrq.conf在手動設置kernel.sysrq=1的位置創建一個文件,以便它盡快可用(但根據情況可能不夠快):

$ grep -nHi sysrq /usr/lib/sysctl.d/* /etc/sysctl.d/*
/usr/lib/sysctl.d/50-default.conf:16:# Use kernel.sysrq = 1 to allow all keys.
/usr/lib/sysctl.d/50-default.conf:17:# See http://fedoraproject.org/wiki/QA/Sysrq for a list of values and keys.
/usr/lib/sysctl.d/50-default.conf:18:kernel.sysrq = 16
/etc/sysctl.d/95-sysrq.conf:1:kernel.sysrq=1

**有沒有辦法從早期啟動啟用 Sysrq,也可能忽略任何設置kernel.sysrq?**例如添加一個核心引導參數(例如,cat /proc/cmdline對於目前參數),例如從 Grub 引導菜單(或在xen.cfg’skernel=行)。

sysrq_always_enabled根據文件有核心啟動參數:

sysrq_always_enabled
           [KNL]
           Ignore sysrq setting - this boot parameter will
           neutralize any effect of /proc/sys/kernel/sysrq.
           Useful for debugging.

我已經測試了 Sysrq 的工作(例如幫助,同步),即使kernel.sysctl=0(所以就像上面的文件所說),如果我添加核心啟動參數sysrq_always_enabled(注意:它不一定是sysrq_always_enabled=1)。

(仔細檢查,我還測試了 Sysrq 在 Sysrq 中不存在時不工作kernel.sysctl=0sysrq_always_enabled/proc/cmdline程式碼

證實了這一點。

注意:/proc/sys/kernel/sysrq是另一種讀/寫方式kernel.sysrq

有關 sysrq 的更多資訊:https
://www.kernel.org/doc/html/v4.15/admin-guide/sysrq.html (雖然sysrq_always_enabled沒有在此處提及,但在此處

**編輯:**生效時sysrq_always_enabled,有一條 dmesg 行:

[    0.000000] sysrq: sysrq always enabled.

引用自:https://unix.stackexchange.com/questions/467423