Linux伊甸园首页

控制面板 自由新闻 自由软件 自由文档 自由论坛 自由商城 联系我们
我的收藏 推荐文章 会员登陆 最后更新 高级搜索 退出登陆
新闻动态
新手入门
技术前沿
系统管理
网络管理
使用经验
编程开发
系统安全
解决方案
硬件相关
Unix家族
数据库类
观点评论
人物介绍



Linuxeden.com-- Linuxeden 新闻 文档 资料 教程 Linux伊甸园 / 使用经验 / 什么是SysRq"魔术组合键"?
什么是SysRq"魔术组合键"?  找linux工作,招linux人才,到Linuxeden人才频道
2006-10-15    zltjiangshi       点击: 5501
什么是SysRq"魔术组合键"?

根据Linux内核文档介绍:

这是一组'魔术组合键',只要内核没有被完全锁住,不管内核在做什么事情,使用这些组合键可以立即打印出内核的信息。

使用sysrq组合键是了解系统目前运行情况的最好方式。如果系统出现挂起的情况或者在诊断一些和内核相关,比较怪异,比较难重现的问题的时候,使用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+[CommandKey]

例如,要让内核导出内存信息(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 - 立即关机(如果机器配置并支持此项功能)
责任编辑: zltjiangshi
发表评论 查看评论 加入收藏 Email给朋友 打印本文
如果你想对该文章评分, 请先登陆, 如果你仍未注册,请点击注册链接注册成为本站会员.
平均得分 0, 共 0 人评分
1 2 3 4 5 6 7 8 9 10
Copyright © 2002 -2003 Linuxeden.com-- Linuxeden 新闻 文档 资料 教程 Linux伊甸园
All rights reserved.