在Linux上使用Magic SysRq键修复冻结的X服务器,干净地重新引导并运行其他低级命令

时间:2020-01-09 10:45:43  来源:igfitidea点击:

在Linux上,魔术SysRq键可以将命令直接发送到Linux内核。即使似乎没有任何响应,也可以使用它从冻结中恢复或者干净地重新启动系统。

神奇的SysRq键是作为Linux键盘驱动程序的一部分实现的,只要Linux内核仍在运行,它就会起作用。只有内核崩溃才应禁用此组合键。

使用Magic SysRq键

SysRq键位于键盘上的Scroll Lock键附近。SysRq键通常与Print Screen键相同。神奇的SysRq组合是Alt + SysRq。

要使用此组合键,Linux内核必须已使用CONFIG_MAGIC_SYSRQ编译选项进行了编译,大多数Linux发行版都默认启用了此功能。假设已将其编译到内核中,则可以通过更改/ proc / sys / kernel / sysrq的值在运行的系统上启用或者禁用它。要检查其是否已启用,请运行以下命令:

cat /proc/sys/kernel/sysrq

如果看到1,将启用魔术SysRq键的所有功能。较大的数字表示仅启用了某些功能,有关更多信息,请参见Linux内核官方帮助。

如果看到0,则可以通过运行以下命令自己启用所有魔术SysRq选项:

sudo echo “1” > /proc/sys/kernel/sysrq

在Ubuntu上,根据/etc/sysctl.d/10-magic-sysrq.conf文件的内容在启动时设置了神奇的SysRq选项。编辑此文件以选择所需的值。

处理冻结的X服务器

如果X服务器(运行图形桌面的程序)死机,我们可能会发现自己无法使用系统。有一些神奇的SysRq命令可以:

  • Alt + SysRq + r使键盘退出原始模式,使控制权脱离X服务器。运行此组合后,我们应该能够使用Ctrl + Alt + F1(和其他F键)键盘快捷键切换到另一个控制台并重新启动X。

  • Alt + SysRq + k杀死当前虚拟控制台上的所有程序,包括X。我们还可以在Ubuntus键盘偏好设置中启用Ctrl + Alt + Backspace键盘快捷键来重新启动X服务器,但是,此快捷方式由X服务器实现,并且可能并非总是有效。

干净地重启系统

按顺序使用这些操作中的某些操作可用于干净地结束进程,将数据刷新到磁盘,卸载所有文件系统以及重新启动计算机。要执行此过程,请按住Alt + SysRq组合键,并在按住Alt和SysRq的同时向下按顺序键入以下键,每个键之间暂停几秒钟:

reisub

以下是每个键的作用:

  • r将键盘置于原始模式,使其不受X服务器的控制。

  • e向所有进程发送终止信号,要求它们正常结束。

  • i向所有进程发送终止信号,迫使它们立即结束。

  • s 将数据从缓存刷新到磁盘。

  • u以只读方式重新安装所有文件系统。

  • b重新启动计算机。

更多命令

这是我们可以使用魔术SysRq键执行的其他一些操作。要执行操作,请在输入字母时按住Alt + SysRq键:

  • n重置所有高优先级和实时优先级进程的优先级(优先级)。

  • f调用oom_kill,它将杀死占用大量内存的进程。

  • o关闭计算机。