Skip to content

键盘快捷键

SysRq 快捷键是一个‘魔术般’的组合键,无论内核当前正在做什么,它都会对其做出响应,除非内核已经彻底死锁(彻底卡死)。

查看当前状态

Terminal window
cat /proc/sys/kernel/sysrq
选项 (勾选)十进制十六进制描述
00x0完全禁用 SysRq
10x1启用 SysRq 的所有功能
20x2启用控制台日志级别控制
40x4启用键盘控制 (SAK, unraw 模式)
80x8启用进程等信息的调试转储 (Debug dumps)
160x10启用 sync 命令 (强制同步所有未写入磁盘的数据)
320x20启用将所有已挂载文件系统重新挂载为只读
640x40启用向进程发送信号 (term, kill, oom-kill)
1280x80允许系统重启或关机
2560x100允许调整所有实时任务的优先级 (Nicing)
执行以下命令启用配置:
echo "kernel.sysrq = 438" | sudo tee /etc/sysctl.d/99-sysrq.conf > /dev/null
sudo sysctl --system

在x86上使用ALT + SysRq (Print Screen) + 命令(见下表)组合键来触发不同的操作。

常用REISUB组合键来安全重启系统:

命令 功能
b 立即重启系统,不进行磁盘同步 (sync) 或卸载 (unmount) 操作。
c 触发系统崩溃 (crash),如果已配置,则会生成崩溃转储 (crashdump)。
d 显示所有已持有的锁 (locks)。
e 向除 init 外的所有进程发送 SIGTERM 信号(请求正常终止)。
f 调用 OOM killer 杀死占用大量内存的进程,但如果无法杀死任何进程,系统也不会触发 panic。
g 被 kgdb(内核调试器)使用。
h 显示帮助信息(实际上按除此处列出外的任何键都会显示帮助,但 h 比较容易记住 :-))。
i 向除 init 外的所有进程发送 SIGKILL 信号(强制终止)。
j 强制“解冻 (thaw)”——恢复被 FIFREEZE ioctl 冻结的文件系统。
k 安全访问键 (SAK),杀死当前虚拟控制台上的所有程序。注:请参阅下方 SAK 部分的重要说明。
l 显示所有活动 CPU 的堆栈回溯 (stack backtrace)。
m 将当前内存信息转储 (dump) 到控制台。
n 用于使实时 (RT) 任务的优先级可被调整 (nice-able)。
o 关闭系统电源(如果已配置并支持)。
p 将当前的寄存器 (registers) 和标志 (flags) 转储到控制台。
q 转储每个 CPU 所有已激活的 hrtimers(不含常规 timer_list 定时器)的列表,以及所有 clockevent 设备的详细信息。
r 关闭键盘的 raw 模式,并将其设置为 XLATE 模式。
s 尝试同步所有已挂载的文件系统(将缓存强制写入磁盘)。
t 将当前任务列表及其信息转储到控制台。
u 尝试将所有已挂载的文件系统重新挂载为只读。
v 强制恢复 framebuffer 控制台。 (注:ARM架构下也会触发 ETM 缓冲区转储)
w 转储处于不可中断(阻塞,uninterruptible)状态的任务。
x 被 ppc/powerpc 平台上的 xmon 接口使用。在 sparc64 上显示全局 PMU 寄存器;在 MIPS 上转储所有 TLB 条目。
y 显示全局 CPU 寄存器 [SPARC-64 架构专属]。
z 转储 ftrace 缓冲区。
0-9 设置控制台日志级别,控制哪些内核消息会打印到控制台。(例如,0 会使得只有 PANIC 或 OOPS 等紧急消息才能打印到控制台上。)
R 在控制台上重放内核日志消息。