用Magic SysRq鍵實現Linux安全重啟
Magic SysRq是Linux內核中一個組合鍵(key combination),它允許用戶可以忽略系統的狀態而執行一些低級指令。
它常被用來從系統凍結狀態中恢復過來或者重啟電腦而不會破壞文件系統。組合鍵由 Alt+SysRq 再加上一個相應的鍵 組成。在大多數系統中 SysRq 鍵就是 Print Screen 鍵.
首先,你需要像下面那樣使 SysRq 鍵生效。
echo "1" > /proc/sys/kernel/sysrq
SysRq 對應的組合鍵列表
以下是對 Alt+SysRq+commandkey 有效的 Commandkeys.
o ‘k’- 殺死所有在當前虛擬控制臺(virtual console)運行的進程 。
o ‘s’- 嘗試同步所有掛載的文件系統。
o ‘b’- 不卸載分區也不做同步的情況下立即重啟系統
o ‘e’- 向除了init 外的所有進程發送 SIGTERM 信號。
o ‘m’- 將當前的內存信息輸出到控制臺。
o ‘i’- 向除了init 外的所有進程發送 SIGKILL 信號。
o ‘r’- 把鍵盤從raw模式(一種被像X11這樣的程序調用的模式)轉換為 XLATE模式。
o ‘s’– 使所有掛載的文件系統同步。
o ‘t’– 將當前任務的清單以及它們的信息輸出到控制臺。
o ‘u’– 以只讀方式重新掛載所有已掛載的文件系統。
o ‘o’– 立刻關閉系統。
o ‘p’– 將當前的寄存器和標志信息輸出到控制臺。
o ‘0-9′- 設置控制臺的日志級別,從而控制輸出到控制臺的內核信息。
o ‘f’– 將會調用 oom_kill 來殺死占用較多內存的進程。
o ‘h’– 用來顯示幫助說明。但是除了上述列出的鍵外其他鍵也可以打印出幫助說明。#p#
我們也可以將該鍵 寫入 /proc/sysrq-trigger 文件中。例如, 要重啟系統你可以運行下面的命令:
echo "b" > /proc/sysrq-trigger
用Magic SysRq鍵實現 Linux 的安全重啟
如果要實現掛起狀態中的Linux的安全重啟,請按如下操作。這將可避免在下一次重啟時進行文件系統檢查和修復(fsck)。也就是,按住Alt+SysRq,再按住如下加粗的字母。
o unRaw (從X11獲取鍵盤的控制權),
o tErminate (向所有進程發出SIGTERM信號,使他們可以正常結束),
o Kill (向所有進程發出SIGKILL信號,強制這些進程立刻結束),
o Sync (將數據同步到磁盤),
o Unmount (卸載所有只讀的文件系統),
o reBoot (重啟系統)