Magic SysRq组合键
神奇的 SysRq 键是 Linux 内核理解的组合键,它允许用户执行各种低级命令,而不管系统的状态如何。 它通常用于从冻结中恢复,或在不破坏文件系统的情况下重新启动计算机。 它的效果类似于计算机的硬件重置按钮(或电源开关),但具有更多选项和更多控制。
这个组合键提供了对软件开发和灾难恢复的强大功能的访问。 从这个意义上说,它可以被认为是转义序列的一种形式。 提供的命令中的主要命令是强制卸载文件系统、终止进程、恢复键盘状态以及将未写入的数据写入磁盘。 对于这些任务,此功能是不得已的工具。
神奇的 SysRq 密钥在某些情况下无法工作,例如内核恐慌或硬件故障导致内核无法正常运行。
命令
组合键由 Alt+SysRq 和另一个控制发出的命令的键组成。 SysRq 可以在按下命令键之前释放,只要 Alt 保持按住。
这些组合始终采用 QWERTY 键盘布局; 例如,在 Dvorak 键盘布局中,关闭系统的组合使用 R 键而不是 O。此外,某些键盘可能不提供单独的 SysRq 键。 在这种情况下,应该存在一个单独的 PrtScn 密钥。
在某些设备上,尤其是笔记本电脑,可能需要按下 Fn 键才能使用神奇的 SysRq 键,例如 在 Thinkpad Carbon X1 上,通过同时按下 Alt+Fn+S 激活 SysRq,然后在按住 Alt 的同时松开 Fn 和 S(参见此处)。 在 ChromeOS 设备上,按 Alt+提高音量 (F10)+<键>。
SysRq 功能也可以在没有键盘的情况下访问。 请参阅下面的§ 调用 Magic SysRq 的其他方法。 请注意,某些命令可能会被禁用,如 /proc/sys/kernel/sysrq 中的位掩码值所指定的那样。
使用
在日志文件系统出现之前,神奇的 SysRq 密钥的一个常见用途是安全重启 Linux 计算机,否则它会被锁定(缩写为 REISUB),从而避免文件系统损坏的风险。 对于现代文件系统,不鼓励这种做法,与直接重新启动相比没有任何好处,尽管 Ubuntu 和 Debian 等发行版中 kernel.sysrq 的默认值分别保持为 176 和 438。
过去的另一个用途是终止冻结的图形程序,因为 X Window 系统曾经完全控制图形模式和输入设备。
在不包含文本模式命令的发行版上,键盘命令 Ctrl+Alt+F1 有时可能会强制返回到文本控制台。 (使用 F1、F2、F3、…、Fn,其中 n 是发行版设置的xxx文本控制台数。Ctrl+Alt+F(n+1) 通常用于在系统上重新进入 GUI 模式 X 服务器没有崩溃。)还有一些发行版,其中 Ctrl+Alt + (F3, … ,F(n-2)) 打开文本控制台,Ctrl+Alt+F1 重新进入 GUI 模式,Ctrl+Alt+ F2 在登录页面上重新进入 GUI 模式,以登录另一个用户。
配置
该功能由内核配置中的编译时选项 CONFIG_MAGIC_SYSRQ 和 sysctl 内核参数 kernel.sysrq 控制。
在较新的内核上(自 2.6.12 起),可以更精细地控制魔法 SysRq 键的使用方式。 在这些机器上,写入 /proc/sys/kernel/sysrq 的数字可以是 0、1 或大于 1 的数字,1 是指示允许哪些功能的位掩码。 在 Ubuntu 上,这在启动时设置为 /etc/sysctl.d/10-magic-sysrq.conf 中定义的值。

调用Magic SysRq的其他方法
虽然神奇的 SysRq 键最初是作为用于调试的内核键盘处理程序的一部分实现的,但该功能也已通过 proc 文件系统公开,并且通常用于为无外设和远程系统提供扩展管理功能。
许多嵌入式系统没有附加键盘,而是使用串行控制台将文本输入/输出到正在运行的系统。 可以通过串行控制台调用 Magic SysRq 功能,方法是发送串行中断信号,然后发送所需的键。 发送中断的方法取决于用于连接串行控制台的终端程序或硬件。