커널 모듈을 사용하고 있으므로 dmesg 출력을 처리해야 합니다. 그러나 명령할 수는 없다dmesg-c. dmesg는 할 수 있지만 버퍼를 지울 수는 없습니다. 나는 다음과 같은 것들을 검색했다.
sudo sysctl kernel.dmesg_restrict =0
그러나 그들은 문제를 해결하지 못했습니다. 왜 버퍼를 지울 수 없나요?
답변1
이에 대한 설명은 다음과 같습니다.man 2 syslog
: "read all"과 "size"를 제외한 모든 syslog 명령은 루트에서만 사용할 수 있습니다. dmesg_restrict
모두 읽기 및 크기에 대한 액세스만 제어합니다. 1로 설정하면 루트로 제한되고, 0으로 설정하면 루트가 아닌 프로세스에서 사용할 수 있습니다.
dmesg -c
모든 경우에 루트가 필요합니다(엄격히 말하면 CAP_SYS_ADMIN
).CAP_SYSLOG
sudo dmesg -c
답변2
그냥 sudo dmesg -c
남자들과 함께 가세요. 이미 작동한다는 것을 알고 있지만 왜 작동하지 않는지 알고 싶습니다 sudo
. 그러나 만족스러운 답변이 없으므로 더 안전한 답변을 선택합니다.