查看 journalctl 的无缓冲日志输出

amo*_*moe 7 logging systemd journalctl

我定义了几个 systemd 服务。它们同时记录到磁盘和 systemd 日志,我可以使用journalctl -n 0 -fu myservice. 但是,我注意到我从 journalctl tail 命令看到的日志通常比磁盘日志晚几分钟。我已经确认这与守护程序使用的实际日志记录配置无关,因为当我手动运行守护程序并将其日志输出到控制台上的标准输出时,我会立即看到日志。

如何在服务生成日志时立即查看 journalctl 的日志输出?完全无缓冲或行缓冲都是可以接受的。

jhu*_*tar 3

也许它是您的守护进程和 systemd 之间用于记录缓冲的管道?这可能是Output of a python script running as unit is out of order 的重复,而 shells 似乎未受影响,其中建议是:

sys.stdout.flush()在write或environment后添加PYTHONUNBUFFERED即可解决这个问题

同样的建议是关于Systemd 日志不显示 python 3 打印