カーネルモジュールを使用しているので、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
。しかし、満足のいく答えがないので、より安全な答えを選択してください。