SysRq 键在 Linux 系统上如何使用?

SysRq 键在 Linux 系统上如何使用?

我理解SysRq 键可用于在崩溃的 Linux 服务器上执行低级系统命令。

有人可以解释一下如何使用此功能,它是否通过 ssh 或 vmware 控制台窗口远程工作,以及它还可以用于其他任何用途(除了重新启动崩溃的系统)?

答案1

SysRq 键命令可以通过按住Alt+SysRq并按下任意组合键来发出。我知道的最常见组合是Alt+ SysRq+ RSEIUB

  • R- 从原始模式切换键盘
  • S- 同步所有已安装的文件系统
  • E- 向除 init 之外的所有进程发送 SIGTERM 信号
  • I- 向除 init 之外的所有进程发送 SIGKILL 信号
  • U- 以只读模式重新挂载所有已挂载的文件系统
  • B- 立即重启系统,无需卸载分区或同步

维基百科页面包含有关各种按键及其功能的更多信息。

回答您问题的其余部分,是的,它可以远程工作(只要您仍与系统保持通信)并在 VMWare 控制台中工作。只要内核正在读取击键,SysRq就会读取并执行输入。(它有效地将命令直接发送到内核,绕过系统的其余部分)

答案2

您可以运行 alt-sysrq-/(alt-sysrq-? 和 shift 无关)来获取可用命令列表。新命令一直在添加。大多数命令都很危险。

要运行 alt-sysrq-T,您也可以“echo T > /proc/sysrq-trigger”,或者在串行控制台上执行 break-T。

一些 Linux 发行版禁用了 magic sysrq,这是一种误导性安全措施。您会在 /etc/sysctl.conf 中看到“kernel.sysrq = 0”。将其更改为“kernel.sysrq = 1”并运行“sysctl -p”。在遇到死机(让您希望 magic sysrq 能够正常工作)之前,您应该始终在新的 Linux 系统上检查这一点。

答案3

重新订阅最常用的是安全地重启卡住的系统。但这不是唯一可能的组合。

通常,当 X 运行时,sysrq 不起作用。如果 ctrl+alt+fX 不起作用,您可以尝试在它之前发送“R”。如果不成功,有时带有“K”的“saK”可以解决问题;它会杀死当前运行级别内的所有进程,包括 X 服务器。然后您可以尝试其他 sysrq 命令。在对 X 服务器发送 saK 后,如果系统仍在运行,您甚至可以从 tty 登录。

有时,当一个愚蠢的过程冻结启动时,当 ctrl+C、ctrl+Z 或 ctrl+alt+del 不起作用时,按“E”后跟 ctrl+alt+del 可以安全正常地重新启动。

“T”命令打印一条跟踪信息,以便您可以检查哪个进程或功能导致了问题。

按 alt+sysrq+H 查看命令的 alt

相关内容