linux-sysrq
sysrq
SysRq(system request) 是 Linux 操作系统内核理解的一系列键,可以触发一组预定义的操作。 当无法通过传统管理 (执行虚拟机故障排除或恢复时,通常使用这些命令,例如,VM 未) 响应。
Sysrq被称为”魔术组合键”, 是内建于Linux内核的调试工具,只要内核没有完全锁住,不管内核在做什么事情,内核都会响应这一系列组合键,使用这些组合键可以搜集包括系统内存使用、CPU任务处理、进程运行状态等系统运行信息。
SysRq 键在确认内核运行、调查内核死机原因等各种情况下都非常有效。
启用sysrq
/proc/sys/kernel/sysrq文件的值控制着SysRq键(键盘组合键)的一些功能。
echo 1 >/proc/sys/kernel/sysrq
##设置为1时,使能SysRq键的所有功能。
若要使 SysReq 配置持久化,可以执行以下操作来启用所有 SysRq 命令
将此行添加到 /etc/sysctl.conf
kernel.sysrq = 1
SysRq的使用
SysRq的使用有两种方式:
第一种是键盘组合键:Alt+SysRq + command key 。(受到/proc/sys/kernel/sysrq值的影响)
ctrl + alt + prtsc+[command key ]
比如: ctr + alt + prtsc + f
// 调用oom_kill杀死内存热进程
第二种是修改/proc/sysrq-trigger文件的值。(不受/proc/sys/kernel/sysrq值的影响)
echo <command key> > /proc/sysrq-trigger
[command key]命令介绍(部分)
键名 功能说明
b 在没有同步或卸载硬盘的情况下立即启动。c 为了获取崩溃转储执行kexe重启动。
d 显示被持的所有锁。
e 发送信号SIGTERM给所有进程,除了init外。
f 将调用oom_kill杀死内存热进程。
g 在平台ppc和sh上被kgdb使用。
h 显示帮助信息。
i 发送信号SIGKILL给所有的进程,除了init外。
k 安全访问密钥(Secure Access Key,SAK)杀死在当前虚拟终端上的所有程序。
m 转储当前的内存信息到控制台。
n 用于设置实时任务为可调整nice的。
o 将关闭系统(如果配置为支持)。
p 打印当前寄存器和标识到控制台。
q 将转储所有正运行定时器的列表。
r 关闭键盘Raw模式并设置为XLATE模式。
s 尝试同步所有挂接的文件系统。
t 将转储当前的任务列表和它们的信息到控制台。
u 尝试以仅读的方式重挂接所有已挂接的文件系统。
v 转储Voyager SMP处理器信息到控制台。
w 转储的所有非可中断(已阻塞)状态的任务。
x 在平台ppc/powerpc上被xmon(X监视器)接口使用。
0~9 设备控制台日志级别,控制将打印到控制台的内核信息。例如:0仅打印紧急信息,如:PANIC和OOPS信息。
https://www.cnblogs.com/MrLiuZF/p/15229868.html
https://blog.csdn.net/hhd1988/article/details/130006269