ILD

sysrq
作者:Yuan Jianpeng 邮箱:yuanjp89@163.com
发布时间:2019-10-21 站点:Inside Linux Development

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)可以打印当前运行的栈。调试系统时比较有用。


Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.