Tuesday, March 17, 2009

075 使用SysRq键安全重启Linux系统

SysRq组合键是Linux的一个内核级命令,你可以通过它执行很多底层任务。比如你可以通过它从冻结状态恢复,或者重新启动系统。这个命令包括:
Alt+SysRq+commandkey:在很多系统中SysRq键就是‘Print Scr’ 键。首先你需要激活这个键。
echo "1" > /proc/sys/kernel/sysrq

SysRq组合键列表:
  • ‘k’:关闭当前虚拟控制台的所有进程。
  • ’s’:尝试同步所有加载的文件系统。
  • ‘b’:在无需卸载分区或者同步的情况下,立即重启系统。
  • ‘e’:给除了init以外所有进程发送SIGTERM
  • ‘m’:在控制台显示当前的内存信息。
  • ‘i’ :给除了init以外所有进程发送SIGKILL。
  • ‘r’:将键盘从原始模式转换到XLATE模式。
  • ’S’ :同步所有加载的文件系统。
  • ‘t’:在控制台上输出当前任何及其信息的列表。
  • ‘u’:以只读模式重新加载所有已经加载的文件系统。
  • ‘o’:立即关闭系统。
  • ‘p’ :在控制台上打印当前的注册者和标志信息。
  • ‘0-9′ :设置控制台的日志级别,从而控制哪些内核信息会打印到当前的控制台。
  • ‘f’:将调用oom_kill来关闭当前占用很多内存的进程。
  • ‘h’ :显示帮助信息。

我们也可以通过把这些信息放到/proc/sysrq-trigger 中来完成同样的事情。比如你可以执行下面的命令来重启系统。
echo "b" > /proc/sysrq-trigger

使用SysRq键安全重启Linux系统
要安全的重启一个已经挂起的Linux系统,可以这样作。这可以避免下次启动时做的fsck检查。比如按下Alt+SysRq+字母(这个字母可以是下面黑体字中的任何一个):
  • unRaw:控制键盘从X11模式返回。
  • tErminate:给每个进程发送一个SIGTERM,允许它们安全的终止。
  • kIll:发送SIGILL给所有进程,立即结束进程。
  • Sync:将数据同步到磁盘上。
  • Unmount:以只读模式重新加载所有文件系统。
  • reBoot:重新启动。

No comments:

Post a Comment