sysrq
【用途】
Sysrq被稱為”魔術組合鍵”, 是內建於Linux內核的調試工具。只要內核沒有完全鎖住,不管內核在做什么事情,使用這些組合鍵都可以搜集包括系統內存使用、CPU任務處理、進程運行狀態等系統運行信息。
【原理】【內核幫助文檔kernel/Documentation/sysrq.txt】
首先,內核配置選項中要使能CONFIG_MAGIC_SYSRQ選項,這樣系統啟動之后,會生成/proc/sysrq-trigger節點用於調試。
其次,可以在/etc/sysctl.conf中設置kernel.sysrq=1默認使能sysq功能。也可以通過寫/proc/sys/kernel/sysrq節點動態使能sysrq功能。寫入不同的值使能不同的功能:
0 - disable sysrq completely |
1 - enable all functions of sysrq |
2 - enable control of console logging level |
4 - enable control of keyboard (SAK, unraw) |
8 - enable debugging dumps of processes etc. |
16 - enable sync command |
32 - enable remount read-only |
64 - enable signalling of processes (term, kill, oom-kill) |
128- allow reboot/poweroff |
256- allow nicing of all RT tasks |
【使用說明】
#echo m > /proc/sysrq-trigger 導出內存分配信息
#echo t > /proc/sysrq-trigger 導出當前任務狀態信息
#echo p > /proc/sysrq-trigger 導出當前CPU寄存器和標志位信息
#echo c > /proc/sysrq-trigger 產生空指針panic事件,人為導致系統崩潰
#echo s > /proc/sysrq-trigger 即時同步所有掛載的文件系統
#echo u > /proc/sysrq-trigger 即時重新掛載所有的文件系統為只讀
#echo w > /proc/sysrq-trigger轉儲處於uninterruptable阻塞狀態的任務