dmesg -w를 백그라운드에서 실행하는 방법

dmesg -w를 백그라운드에서 실행하는 방법

그래서 컴퓨터를 충돌시키는 명령이 있는데 dmesg의 출력을 보고 그 이유를 알아보고 싶습니다.

dmesg가 프로세스를 추적하도록 허용하는 옵션이 있는 것을 확인했지만 -w문제는 종료되지 않아 다음 명령을 실행할 수 없다는 것입니다 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프로그램이 실행 중일 때 무슨 일이 일어나고 있는지 이해하는 데 더 좋으며 루트 권한이 필요하지 않습니다. 다음과 같이 백그라운드에서 실행할 수 있습니다.

nohup strace -p pid &

그리고 추적을 따라가세요tail -f nohup.out

관련 정보