用 Magic SysRq 键实现 Linux 安全重启

On 2012年03月27日, in linux, tips, by netoearth

 是 Linux 内核中一个组合键(key combination),它允许用户可以忽略系统的状态而执行一些低级指令。
它常被用来从系统冻结状态中恢复过来或者重启电脑而不会破坏文件系统。组合键由Alt+SysRq 再加上一个相应的键 组成。在大多数系统中 SysRq 键就是 Print Screen 键.
首先,你需要像下面那样使 SysRq 键生效。

 echo "1" > /proc/sys/kernel/sysrq 

SysRq 对应的组合键列表

以下是对 Alt+SysRq+commandkey 有效的 Commandkeys.
‘k’- 杀死所有在当前虚拟控制台(virtual console)运行的进程 。
‘s’- 尝试同步所有挂载的文件系统。
‘b’- 不卸载分区也不做同步的情况下立即重启系统
‘e’- 向除了init 外的所有进程发送 SIGTERM 信号。
‘m’- 将当前的内存信息输出到控制台。
‘i’- 向除了init 外的所有进程发送 SIGKILL 信号。
‘r’- 把键盘从raw模式(一种被像X11 这样的程序调用的模式)转换为 XLATE模式。
‘s’– 使所有挂载的文件系统同步。
‘t’– 将当前任务的清单以及它们的信息输出到控制台。
‘u’– 以只读方式重新挂载所有已挂载的文件系统。
‘o’– 立刻关闭系统。
‘p’– 将当前的寄存器和标志信息输出到控制台。
’0-9′- 设置控制台的日志级别,从而控制输出到控制台的内核信息。
‘f’– 将会调用 oom_kill 来杀死占用较多内存的进程。
‘h’– 用来显示帮助说明。但是除了上述列出的键外其他键也可以打印出帮助说明。

我们也可以将该键 写入 /proc/sysrq-trigger 文件中。例如, 要重启系统你可以运行下面的
命令:

 echo "b" > /proc/sysrq-trigger 

用Magic SysRq键实现 Linux 的安全重启

如果要实现挂起状态中的 Linux 的安全重启,请按如下操作。这将可避免在下一次重启时进行
文件系统检查和修复(fsck)。也就是,按住 Alt+SysRq,再按住如下加粗的字母。
unRaw (从X11 获取键盘的控制权),
tErminate (向所有进程发出SIGTERM信号,使他们可以正常结束),
Kill (向所有进程发出SIGKILL信号,强制这些进程立刻结束),
Sync (将数据同步到磁盘),
Unmount (卸载所有只读的文件系统),
reBoot (重启系统)

Tagged with:  

Comments are closed.