![SysRq 键在 Linux 系统上如何使用?](https://linux22.com/image/483169/SysRq%20%E9%94%AE%E5%9C%A8%20Linux%20%E7%B3%BB%E7%BB%9F%E4%B8%8A%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%EF%BC%9F.png)
我理解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