journalctl与其他所有消息一起更新

时间:2015-09-09 19:39:30

标签: kernel-module archlinux systemd

我正在研究我的第一个内核模块。我在“Linux内核模块编程指南”中完成了一些练习,但这是我的第一篇没有任何指导的练习。

当我使用printk或pr_err宏打印消息时,在我打印另一条消息之前,它没有赶上。

例如

int init_module()
{
    pr_err("This is a message");
}

void cleanup_module()
{
    pr_err("this is a second message");
}

如果我insmod这个模块,journalctl什么都不会显示。当我rmmod journalctl将显示两个消息,时间戳将是相同的。

如果我insmod这个模块然后insmod另一个打印两个消息的模块将在我insmod第二个模块后显示。两条消息的时间戳都相同。

1 个答案:

答案 0 :(得分:0)

如果printk的消息不包含换行符号,则其输出可能会延迟。

通常,你需要

pr_err("This is a message\n");

有时,使用KERN_INFOKERN_ALERT也会强制立即输出消息。但终止\n的方法似乎更清楚。

取自this question的答案。