我使用 Mint 19.2,并尝试通过以下过程查看 CPU 回溯。
$ sudo -s
# sysctl -w kernel.sysrq=1
# echo l > /proc/sysrq-trigger
但是,什么也没发生。我在网上进行了更多研究,并尝试了以下输入键检查,命令的响应是这样的。
# dmesg | grep -i sysrq
[18494.528450] sysrq: SysRq : Show backtrace of all active CPUs
[18494.528496] sysrq_handle_showallcpus+0x17/0x20
[18494.528499] __handle_sysrq+0x9f/0x170
[18494.528502] sysrq_filter+0x98/0x3e0
即使我尝试了echo h > /proc/sysrq-trigger
,结果也不会显示。但是,dmesg | grep -i sysrq
回复道:
[21964.365327] sysrq: 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) sak(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tasks(n) poweroff(o) show-registers(p) show-all-timers(q) unraw(r) sync(s) show-task-states(t) unmount(u) force-fb(V) show-blocked-tasks(w) dump-ftrace-buffer(z)
enter code here
通过这些dmesg
响应,我相信操作系统至少将echo
命令中的字母识别为 SysRq 输入。
如何让操作系统echo l > /proc/sysrq-trigger
在当前终端上显示结果?
答案1
内核只会在控制台和内核消息缓冲区中显示消息,这些消息通常由 syslog 使用“kernel”工具记录,也可以使用dmesg
.
内核没有“当前终端”的概念,所以你想要的东西是不可能的。