Linux内核基础篇——神奇的系统请求键SysRq

什么是SysRq
Linux内核提供了一些与用户空间的通信机制,例如procfs接口和sysfs接口,大部分的这些接口都可以作为获取内核信息的手段。

但除了这些接口,内核也提供了专门的调试机制——系统请求键SysRq。

SysRq被内核称为“Magic SysRq key”,即“神奇的系统请求键”。

简单来说,就是可以通过键盘的按键获取内核的信息,用于调试。相当于是一个快捷键。

SysRq内核配置选项
要使用系统请求键SysRq,内核配置选项中必须打开CONFIG_MAGIC_SYSRQ

CONFIG_MAGIC_SYSRQ=y

SysRq键是复合键【Alt+ SysRq】,大多数键盘的SysRq和PrtSc键是复用的。

按住SysRq复合键, 再输入第三个命令键, 可以执行相应的系统调试命令。 例如,输入t键, 可以得到当前运行的进程和所有进程的堆栈跟踪。 回溯跟踪将被写到/var/log/messages 文件中。 如果内核都配置好了, 系统应该己经转换了内核的符号地址。

系统请求键命令说明
在这里插入图片描述
以上是系统请求键SysRq命令的主要说明,更多的内容可以参考内核说明文档:Documentation/sysrq.txt
通过/proc接口发起系统请求
有些硬件平台可能不能使用SysRq复合键,这种情况下,也可以通过/proc接口进入系统请求状态。

因为在内核配置选项中,使能了CONFIG_MAGIC_SYSRQ选项后,系统启动之后,就会生成/proc/sysrq-trigger节点用于调试。

例如:

产生空指针panic事件,认为导致系统崩溃:

echo c > /proc/sysrq-trigger

导出当前CPU寄存器和标志位信息:

echo p > /proc/sysrq-trigger

在控制台上显示内存信息:

echo m > /proc/sysrq-trigger

echo输出的字符,其实就是第三个键的命令
系统请求键SysRq主要用来辅助调试和拯救系统,在系统宕机或者运行不正常的时候,通过系统请求键SysRq可以查询当前进程执行的状态,从而判断出错的进程和函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值