![如何跟踪 systemd 单元日志?](https://linux22.com/image/1552903/%E5%A6%82%E4%BD%95%E8%B7%9F%E8%B8%AA%20systemd%20%E5%8D%95%E5%85%83%E6%97%A5%E5%BF%97%EF%BC%9F.png)
我有一个正在运行的 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
仅显示最近的日记帐分录,并在日记帐附加新分录时连续打印它们。