如何查看 systemd 服务的输出?

如何查看 systemd 服务的输出?

我想观察systemdCentOS 上某个服务的输出,就好像我从控制台启动了该服务一样。是的,我可以看到 的输出journalctl,但它不会自动滚动到底部。那么我如何观看服务的实时输出?

答案1

journalctl -f -u mystuff.service

手册上是这样写的:

-f, --follow
仅显示最新的日记条目,并在新条目附加到日记时连续打印它们。

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

该参数可以指定多次。

答案2

要添加到 @don_crissti 的答案,如果您只想查看该服务的输出,而没有其他内容,您可以使用以下命令:

journalctl -f -o cat _SYSTEMD_UNIT=mystuff.service

选择-o cat省略附加信息(例如时间戳)的输出格式,并且使用_SYSTEMD_UNIT代替-u意味着消息有关的发送到服务但未由服务打印的信息(例如启动/停止消息或核心转储)将不会被选择。

请注意,日志将从服务通过接收到的所有内容拆分StandardOutput=journal为换行符和字符处的日志记录NUL,因此,如果您的服务在一段时间内没有终止换行符或NUL字符的情况下打印输出,则此输出仍然不会很活跃。

相关内容