在Linux上使用Magic SysRq键修复冻结的X服务器,干净地重新引导并运行其他低级命令
在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关闭计算机。