如何跟踪 systemd 单元日志?

如何跟踪 systemd 单元日志?

我有一个正在运行的 systemd 单元,我想跟踪它的日志。

我知道我可以使用以下方法显示单位的日志:

journalctl -u my_unit.service

但这只会打印当前日志而不跟踪它们。

我知道我也可以systemd使用以下方法跟踪日志:

journalctl -f

但是,这会通过跟踪所有已知日志来产生垃圾邮件输出,所以我必须搜索我感兴趣的内容。

一个临时的解决方案似乎是将后面的日志通过管道传输到 grep 过滤输出,但这不是很系统的解决方案:

journalctl -f | grep "what i'm interested in"

没有用于跟踪某个单元的日志的命令吗?

我尝试过但没有效果的方法:

journalctl -uf my_unit.service

答案1

我发现我使用的参数顺序不对。实际上可以使用以下命令跟踪单个单元的日志:

journalctl -fu my_unit.service

其他工作变化:

journalctl -f -u my_unit.service
journalctl -u my_unit.service -f

journalctl手动的:

-u--unit=UNIT|PATTERN

    显示指定 systemd 单元的消息UNIT(例如服务单元),或任何匹配的单元PATTERN。如果指定了模式,则会将日志中找到的单元名称列表与指定模式进行比较,并使用所有匹配项。对于每个单元名称,都会为来自该单元的消息添加一个匹配项(“ ”),以及来自 systemd 的消息和有关指定单元的核心转储的消息的其他匹配项。_SYSTEMD_UNIT=UNIT

    该参数可以指定多次。

-f, --follow

    仅显示最近的日记帐分录,并在日记帐附加新分录时连续打印它们。

相关内容