journalctl --follow 没有进展

journalctl --follow 没有进展

我有一个程序,它不断读取输出:

journalctl -o json --follow

并将其发送到另一个进程。虽然它最初从尾部输出日记帐条目,但在运行时,新的条目不会出现在 stdout 上。就好像跟随模式不是在跟随而是停滞了。

为了测试这一点,我运行了两个终端窗口:

  1. journalctl -o json --follow
  2. echo "Hello world" | systemd-catx 10 次

我第一次运行 2 时,它似乎跟上了。后续运行 2 时,什么都没有出现。

这是一个大问题。关注不是真的关注吗?

操作系统是 x86_64 上的 Ubuntu 16.04

答案1

可能会发生两件事:

  1. 如果你记录了同一行 10 次,重复的行可能会被过滤,请尝试更改 hello world 消息

  2. 你用来解析输出的程序journalctl -f -o json和 journalctl 本身之间可能存在一些缓冲,请参见查看 journalctl 的非缓冲日志输出

答案2

也可能是你/某人/ntp 将时间改回了。事实证明 journalctl -f 根据日期显示最新日志,而不是根据最新传入日志...

查看:https://github.com/systemd/systemd/issues/5345

答案3

您可能没有 inotify 资源。奇怪的是我的远程 VSCode 占用了太多资源。您可以通过执行以下操作来增加这些资源: https://stackoverflow.com/a/56292289/1394731

显然,当发生这种情况时,较新版本的 systemd 会发出警告:https://github.com/systemd/systemd/issues/2321#issuecomment-1032425855

相关内容