Linux Magic System Request
当内核出现状况,但是仍然可以响应console中断时,那么可以使用sysrq来实现重启、sync、打印栈等功能。
对于console。可以发送break加数字,来调用sysrq命令。比如putty,可以通过标题栏-special command-break,发送break,然后输入数字。
当系统正常时,也可以通过串口输入命令来使用sysrq。首先保证
1 2 | # cat /proc/sys/kernel/sysrq 1 |
是打开的,1表示全部打开,0表示全部关闭,其它是打开某些功能。
然后把命令输入/proc/sysrq-trigger即可。
比如输入h,可以查看sysrq支持的功能:
1 2 3 4 5 6 | # echo h > /proc/sysrq-trigger [ 2759.559595] SysRq : HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) sync(s) show-task-states(t) unmount(u) show-blocked-tasks(w) |
其中l (字母l)可以打印当前运行的栈。调试系统时比较有用。