sysrq
【用途】
Sysrq 被称为”魔术组合键”,是内建于 Linux 内核的调试工具。只要内核没有完全锁住,不管内核在做什么事情,使用这些组合键都可以搜集包括系统内存使用、CPU 任务处理、进程运行状态等系统运行信息。
【原理】【内核帮助文档 kernel/Documentation/sysrq.txt】
首先,内核配置选项中要使能 CONFIG_MAGIC_SYSRQ 选项,这样系统启动之后,会生成 /proc/sysrq-trigger 节点用于调试。
其次,可以在 /etc/sysctl.conf 中设置 kernel.sysrq= 1 默认使能 sysq 功能。也可以通过写 /proc/sys/kernel/sysrq 节点动态使能 sysrq 功能。写入不同的值使能不同的功能:
0 | disable sysrq completely |
1 | enable all functions of sysrq |
2 | enable control of console logging level |
4 | enable control of keyboard (SAK, unraw) |
8 | enable debugging dumps of processes etc. |
16 | enable sync command |
32 | enable remount read-only |
64 | enable signalling of processes (term, kill, oom-kill) |
128 | allow reboot/poweroff |
256 | allow nicing of all RT tasks |
【使用说明】
- #echo m > /proc/sysrq-trigger 导出内存分配信息
- #echo t > /proc/sysrq-trigger 导出当前任务状态信息
- #echo p > /proc/sysrq-trigger 导出当前 CPU 寄存器和标志位信息
- #echo c > /proc/sysrq-trigger 产生空指针 panic 事件,人为导致系统崩溃
- #echo s > /proc/sysrq-trigger 即时同步所有挂载的文件系统
- #echo u > /proc/sysrq-trigger 即时重新挂载所有的文件系统为只读
- #echo w > /proc/sysrq-trigger 转储处于 uninterruptable 阻塞状态的任务
转载自:https://www.cnblogs.com/justin-y-lin/p/5424555.html
正文完