web-dev-qa-db-ja.com

コマンドラインからdmesgに書き込む方法を教えてください。

Dmesgにステートメントを書きたいのですが。 [これどうやってするの?

49
notlesh

/dev/kmsgに書き込みます(@ Nils で提案されている/proc/kmsgではありません)。カーネル側の実装については、 linux/kernel/printk/printk.cdevkmsg_writevsystemd/src/journal/journald-kmsg.cを参照してくださいserver_forward_kmsgの使用例。

42
ephemient

bSD向け

%logger -p kern.crit MESSAGE

(礼儀 Ian、freebsd-questionsメーリングリスト

linux用

su root -c 'echo MESSAGE > /dev/kmsg'
14
xitij

他の誰もこれを行う公式の方法を考え出さないと仮定すると...

printk関数を呼び出すカーネルモジュールを作成できます。例があります here それはあなたのためにちょうど仕事をするかもしれません。

3
ams

man dmesg を正しく理解していれば、/ proc/kmsgに書き込むことができるはずです。

0
Nils

->以下のようにCプログラムを書くことができます:

test_mod.c

#include <linux/module.h>
#include <linux/kernel.h>

int init_module(void)
{
    printk("Hello All\n This is a test init\n");
    return 0;
}

void cleanup_module(void)
{
    printk("Good Bye");
}

->オブジェクトファイルを作成します。

echo "obj-m := test_mod.o" > Makefile

->次のコマンドを実行してコンパイルします。

make -C /lib/modules/$(Shell uname -r)/build M=$(PWD) modules`

->以下のようにモジュールをロードします。

insmod ./test_mod.ko

出力を参照してください:

dmesg | tail

->アンロードモジュール:

rmmod test_mod.ko
0
Bhavana Johri