首页 文章

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

提问于
浏览
0

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

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

例如

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

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

    通常,你需要

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

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

    取自this question的答案 .

相关问题