linux sysrq使用方法,[转载]Linux中SysRq的使用

在终端上同时按Alt, SysRq和命令键则会执行SysRq命令, SysRq键就是"Print

Screen"健. 比如Alt+SysRq+b则重启机器.ALT+SysRQ+X(此处X代表命令参数)

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

使用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事件。在带有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 - 即时关机(如果机器设置并支持此项功能)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值