当前位置:嗨网首页>书籍在线阅读

17-Magic SysReq key

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

14.3.7 Magic SysReq key

Magic SysReq key是一个有用的调试辅助手段,它通过一系列预定义的按键序列直接向内核发送消息。在很多架构和目标板上,可以使用一个简单的运行于串行端口之上的终端模拟器作为系统控制台。在这些架构中,Magic SysReq key被定义为一个中止(break)字符后面跟上一个命令字符。请参考终端模拟器的帮助文档,以了解如何发送中止字符。minicom是很多Linux开发人员使用的终端模拟器。对于minicom,可以通过按下Ctrl-A F来发送中止字符。如果你使用的是screen,则需按下Ctrl-A Ctrl-B。以这种方式发送了中止字符之后,你需要在5秒钟以内输入命令字符,否则命令序列就会超时。

这个工具对内核的开发和调试帮助极大,但它也会造成数据丢失和系统损坏。实际上, b 命令会立刻重启系统,而且没有任何的提示或准备。打开的文件没有关闭,磁盘上的内容没有同步,而且文件系统没有卸载。当执行重启( b )命令时,控制权会立刻被转交给架构的复位向量(reset vector),让人感到非常突然和震惊。所以,使用这个强大的工具是有风险的,请务必小心!

在Linux内核源码的文档子目录中,有一个名为sysrq.txt的文件很好地讲述了这个特性。你可以从中找到很多架构的细节和可用命令的描述。

设置内核日志级别还有一种方法就是使用Magic SysReq key。命令是一个0~9的数字,它会将默认日志级别设置成传入的数值。对于minicom,按下Ctrl-A F之后再按一个数字,比如9。发送了这个中止命令序列后,终端上会显示出如下信息:

446.png 该工具还有其他一些命令可用于查看寄存器内容,关闭系统,重启系统,查看进程列表和将当前内存使用情况输出到控制台,等等。请参考最新的Linux内核文档,以获取有关详细信息。

当系统因为某种原因锁死的时候,这个工具常常会派上用场。Magic SysReq key经常能够提供途径,让你从一个原本已经崩溃的系统中了解到一些情况。