快速业务通道

使用sysrq组合键了解系统运行情况

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-15

  如果系统出现挂起的情况或者在诊断一些和内核相关,比较怪异,比较难重现的问题的时候,使用sysrq键是一个比较好的方式.

  如何打开和关闭SysRq组合键?

  为了安全起见,在红帽企业版Linux里面,默认SysRq组合键是关闭的.

  打开这个功能,运行:

  # echo 1 > /proc/sys/kernel/sysrq

  关闭这个功能:

  # echo 0 > /proc/sys/kernel/sysrq

  如果想让此功能一直生效,在/etc/sysctl.conf里面设置kernel.sysrq的值为1. 重新启动以后,此功能将会自动打开.

  kernel.sysrq = 1

  打开sysrq键的功能以后,有终端访问权限的用户将会拥有一些特殊的功能.因此,除非是要调试,解决问题,一般情况下,不要打开此功能.如果一定要打开,请确保您的终端访问的安全性.

  如何触发一个sysrq事件?

  有几种方式可以触发sysrq事件.在带有AT键盘的一般系统上,在终端上输入一下组合键:

  Alt PrintScreen [Command Key]

  例如,要让内核导出内存信息(CommandKey "m"),您应该同时按下Alt 和 Print Screen 键,然后按下 m 键. 提示: 此组合键在Xwindows上是无法使用的.,您先要切换到文本虚拟终端下.如果您现在是在图形界面,可以按Ctrl Alt F1切换到虚拟终端.

  在串口终端上,要想获得同样的效果,需要先在终端上发送Break信号,然后在5秒内输入sysrq组合键.

  如果您在机器上有root权限,您可以把commandkey字符写入到/proc/sysrq-trigger文件.这可以帮助您通过脚本或者您不在系统终端上的时候触发sysrq事件.

  # echo ''m'' > /proc/sysrq-trigger

  当我触发一个sysrq事件的时候,结果保存在什么地方?

  当一个sysrq命令被触发,内核将会打印信息到内核的环形缓冲并输出到系统控制台.此信息一般也会通过syslog输出到/var/log/messages.

  有时候,可能系统已经无法响应,syslogd可能无法记录此信息.在这种情况下,建议您配置一个串口终端来收集这个信息.

  那些类型的sysrq事件可以被触发?

  sysrq功能被打开后,有几种sysrq事件可以被触发.不同的内核版本可能会有些不同.但有一些是共用的:

  * m - 导出关于内存分配的信息

  * t - 导出线程状态信息

  * p - 到处当前CPU寄存器信息和标志位的信息

  * c - 故意让系统崩溃(在使用netdump或者diskdump的时候有用)

  * s - 立即同步所有挂载的文件系统

  * u - 立即重新挂载所有的文件系统为只读

  * b - 立即重新启动系统

  * o - 立即关机(如果机器配置并支持此项功能)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号