sysrq

内核源码说明文档

Documentation\sysrq.txt

立即重新启动计算机

echo "b" > /proc/sysrq-trigger

立即关闭计算机

echo "o" > /proc/sysrq-trigger

导出内存分配的信息 (可以用/var/log/message 查看)

echo "m" > /proc/sysrq-trigger

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

echo "p" > /proc/sysrq-trigger

导出线程状态信息

echo "t" > /proc/sysrq-trigger

故意让系统崩溃

echo "c" > /proc/sysrq-trigger

立即重新挂载所有的文件系统

echo "s" > /proc/sysrq-trigger

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

 echo "u" > /proc/sysrq-trigger

参考文档

https://www.ibm.com/developerworks/cn/linux/l-cn-sysrq/

使用SysRq有两种方式:

一种是直接通过键盘 Alt+SysRq+<command key>(部分笔记本上是Alt+Fn+PrtSrc+<command key>) 来出发,

还有一种是直接通过 /proc/sysrq-trigger 接口来完成.

echo “ b ” |sudo tee /proc/sysrq-trigger

其中,这里每个 command-key 都对应一种kernel的行为,而且需要说明的是,不同种类的键盘上,相同kernel行为对应的 command-key 居然是不同的!

下面表格就是各个kernel行为对应的 command-key 的说明:

Action QWERTY Dvorak AZERTY Colemak
设置控制台日志级别(console_loglevel),它决定了哪些kernel信息会被输出到控制台上 0 - 9 0 - 9 0 - 9(without ⇧ Shift) 0 - 9
不同步并卸载文件系统,立即重启系统 b x b b
让系统立即崩溃. 在配置得当的情况下会产生一个 crashdump c j c c
显示所有排它锁 (需要内核启用CONFIG_LOCKDEP选项) d e d s
发送 SIGTERM 信号到除了 init (PID 1) 外的所有进程 e . e f
触发 oom_kill, 会随机杀掉一个进程以缓解 OOM f u f t
当进入内核模式时,切换到内核的 framebuffer 控制台. 若有内核调试器 kdb,则进入该调试器中 g i g d
在控制台上输出一个简短的帮助信息. (其他不能识别的key也会输出帮助信息) h d h h
发送 SIGKILL 信号到除了 init (PID 1) 外的所有进程 i c i u
强制通过 FIFREEZE ioctl 冻结文件系统. j h j n
杀掉当前虚拟控制台中的所有进程 (包括 X 和 SVGALib 程序). k t k e
列出所有活动CPU上的 stack backtrace l n l i
在控制台上输出当前内存信息 m m , m
重置所有高优先级和实时任务的 nice 级别 n b n k
关闭系统 o r o y
在控制台输出当前寄存器和标志位信息 p l p ;
Display all active high-resolution timers and clock sources. q ' a q
将键盘从 raw 模式(常被诸如X11和SVGALib这样的程序所使用)切换到 XLATE模式 r p r p
同步所有已挂载的文件系统 s o s r
在控制台输出当前任务列表 t y t g
重新以只读模式重新挂载所有已挂载的文件系统 u g u l
强制恢复 framebuffer console. 若为ARM处理器,则会导致 ETM buffer dump. v k v v
显示所有阻塞状态(状态为D)的任务 w , z w
Used by xmon interface on PPC/PowerPC platforms. x q x x
显示全局的CPU寄存器内容 (仅对SPARC-64平台有效) y f y j
Dump the ftrace buffer z ; w z
输出一份简单的系统支持SysRq的键列表 space space space space
 

猜你喜欢

转载自www.cnblogs.com/aspirs/p/12818593.html
今日推荐