如何在Linux系统上使用SysRq密钥?

我知道SysRq键可以用来在崩溃的Linux服务器上执行底层的系统命令。

有人可以解释如何使用这个function,无论是通过ssh或vmware控制台窗口远程工作,还可以使用其他任何东西(除了重新启动崩溃的系统)?

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

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

维基百科页面有更多关于各种键和他们做什么的信息。

要回答你的问题的其余部分,是的,它远程工作(只要你还与系统沟通),并在VMWare控制台。 只要内核正在读击键, SysRqinput将被读取并执行。 (它有效地将命令直接发送到内核,绕过系统的其余部分)

您可以运行alt-sysrq- /(alt-sysrq-?with shift not matter)来获取可用命令的列表。 新的一直在增加。 大多数是危险的。

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

一些Linux发行版带有禁用的神奇sysrq作为错误的安全措施。 你会在/etc/sysctl.conf中看到“kernel.sysrq = 0”。 将其更改为“kernel.sysrq = 1”并运行“sysctl -p”。 在运行到一个冻结之前,你应该经常在一个新的Linux系统上检查这个问题,使你希望神奇的sysrq正在工作。

最经常使用REISUB来安全地重新启动系统。 但它不是唯一可能的组合。

正常情况下,当X运行时,sysrq不起作用。 如果ctrl + alt + fX不起作用,可以尝试在它之前发送“R”。 如果不成功,有时用“K”表示“sak” 它杀死当前运行级别的所有进程,包括X服务器。 然后你可以尝试其他的sysrq命令。 在sa服务器之后,如果系统还在运行,你甚至可以从ttylogin。

有时,当一个愚蠢的进程冻结引导,当按Ctrl + C,按Ctrl + Z或Ctrl + Alt + Del没有什么,一个“E”后跟一个Ctrl + Alt + Del可以做一个安全和正常的重新启动。

'T'命令打印一个跟踪,以便检查哪个进程或函数导致问题。

通过按alt + sysrq + H来查看alt的命令