如何查看systemd服务的输出?

sti*_*tiv 15 systemd journalctl

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

don*_*sti 26

journalctl -f -u mystuff.service
Run Code Online (Sandbox Code Playgroud)

它在手册中:

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

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

该参数可以多次指定。


Luc*_*ter 7

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

journalctl -f -o cat _SYSTEMD_UNIT=mystuff.service
Run Code Online (Sandbox Code Playgroud)

-o cat选择的输出格式省略了附加信息(例如时间戳),以及使用的_SYSTEMD_UNIT,而不是-u装置的邮件相关的服务,而不是由它打印(e.?g。开始/停止消息或核心转储)韩元”被选中。

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