歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統下SysRq小工具的使用

Linux系統下SysRq小工具的使用

日期:2017/2/28 17:37:14   编辑:Linux教程

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
above will display help. but 'h' is easy to remember :-)


在終端上同時按Alt, SysRq和命令鍵則會執行SysRq命令, SysRq鍵就是"Prent Screen"健. 比如Alt+SysRq+b則重啟機器.

如果使用telnet 或ssh連接到服務器則可以使用echo '<SysRq命令鍵>' > /proc/sysrq-trigger的方式執行SysRq命令, 比如echo 'b' > /proc/sysrq-trigger重啟系統.

三 常用的SysRq命令(序列)

3.1 重啟機器的SysRq命令序列是 k(SAK) s(sync) u(umount) b(reboot)

3.2 顯示內存信息的SysRq命令是m(memory)

3.3 顯示當前任務信息的SysRq命令是t(task)

四 參考材料

<Kernel Source>/Documentation/sysrq.txt: sysrq.txt最權威的文檔, 最好參考當前運行的kernel附帶的文檔. 或者去http://lxr.linux.no/source/Documentation/sysrq.txt查看

Oracle Metalink Note 228203.1: Alt SysRq Keys Utility on Linux

Copyright © Linux教程網 All Rights Reserved