“Magic SysRq key
”是一种组合键(例如在X86
平台,是ALT-SysRq-<command key>
),除非kernel
被完全锁定(连中断都无法处理),否则就会响应这个组合键。这是一个很好的调试kernel
方法。
要使用“magic SysRq key
”功能,编译kernel
时CONFIG_MAGIC_SYSRQ
要选择yes
:“make menuconfig
”->“Kernel hacking
”->“Magic SysRq key
”。当“magic SysRq key
”功能编译进kernel
后,可以通过/proc/sys/kernel/sysrq
文件控制“magic SysRq key
”键的功能。这个文件里的默认值是CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE
这个配置项的值。例如:
0:关闭所有“`magic SysRq key`”功能
1:开启所有“`magic SysRq key`”功能
......
要注意/proc/sys/kernel/sysrq
只能影响通过键盘使用“magic SysRq key
”键的功能。而通过访问/proc/sysrq-trigger
使用“magic SysRq key
”键的功能则总是允许的。
常用的命令包括:
重启系统 (在系统hung住时特别管用):
echo b > /proc/sysrq-trigger
让系统crash:
echo c > /proc/sysrq-trigger
......
具体请参考kernel
文档。
参考资料:
(1)magic sysrq: a linux system debugging technique;
(2)sysrq.txt。