Linux中SysRq的使用
在看貼之前描述一下這個功能的作用,如果你打開這個功能,當你的服務器遇到out of memory的時候,你遠程連上服務器會非常緩慢,可能敲命令,系統都沒有什么反映,遇到這樣的情況,一般來說是得親自跑到機房去重啟機器了,或者給機房的人打電話,如果因為去不了機房,又想重啟機器,可以用這個功能來重啟機器。
經過研討發現在不能使用reboot/init 6正常重啟的情況下可以采用這個辦法來重啟
當Linux 系統不能正常響應用戶請求時, 可以使用SysRq小工具控制Linux.
一 SysRq的啟用與關閉
要想啟用SysRq, 需要在配置內核時設置Magic SysRq key (CONFIG_MAGIC_SYSRQ)為Y. 對于支持SysRq的內核, /proc/sys/kernel/sysrq控制SysRq的啟用與否. 如果/proc/sys/kernel/sysrq內容為0, 則SysRq被禁用; 如果/proc/sys/kernel/sysrq內容為1, 則SysRq被啟用. 關于/proc/sys/kernel/sysrq的更多描述, 請參考<Kernel Source>/Documentation/sysrq.txt
可通過運行命令echo "0" >/proc/sys/kernel/sysrq和echo "1" >/proc/sys/kernel/sysrq暫時啟用或禁用SysRq. 如果需要永久啟用或者禁用SysRqs, 則可在/etc/sysctl.conf中設置kernel.sysrq = 1 (啟用SsyRq)或kernel.sysrq = 0 (禁用SysRq)
二 SysRq的使用
SysRq的命令鍵有
'r' - Turns off keyboard raw mode and sets it to XLATE.
'k' - Secure Access Key (SAK) Kills all programs on the current virtual
console. NOTE: See important comments below in SAK section.
'b' - Will immediately reboot the system without syncing or unmounting
your disks.
'o' - Will shut your system off (if configured and supported).
's' - Will attempt to sync all mounted filesystems.
'u' - Will attempt to remount all mounted filesystems read-only.
'p' - Will dump the current registers and flags to your console.
't' - Will dump a list of current tasks and their information to your
console.
'm' - Will dump current memory info to your console.
'0'-'9' - Sets the console log level, controlling which kernel messages
will be printed to your console. ('0', for example would make
it so that only emergency messages like PANICs or OOPSes would
make it to your console.)
'e' - Send a SIGTERM to all processes, except for init.
'i' - Send a SIGKILL to all processes, except for init.
'l' - Send a SIGKILL to all processes, INCLUDING init. (Your system
will be non-functional after this.)
'h' - Will display help ( actually any other key than those listed
新聞熱點
疑難解答