如何在后台运行 dmesg -w

如何在后台运行 dmesg -w

所以我有一个命令使计算机崩溃,我想查看 dmesg 的输出以找出原因。

我看到有一个-w选项允许 dmesg 跟踪该过程,但问题是它不会退出,所以我无法运行以下命令dmesg -w

我试过

>     #!/bin/bash 
>     dmesg -w & 
>     echo image.raw | /sys/device/platform/inject_frame

但这仍然没有在后台运行。对我能做什么有什么建议吗?

我使用的内核版本是4.9.241

编辑:解决方案由 Harry 提供,位于评论部分。最后我做了(sudo journal -fk | sudo dd=log.txt) &我想做的事,即将以下操作的日志捕获到 log.txt

要了解journalctl与dmesg有何不同,您可以在这里查看: https://www.reddit.com/r/redhat/comments/n3b278/can_someone_briefly_explain_the_major_differences/ dmesg和journalctl有什么区别

答案1

strace -p pid更适合了解程序运行时发生的情况,并且不需要 root 权限。您可以像这样在后台运行它:

nohup strace -p pid &

并跟随跟踪tail -f nohup.out

相关内容