我想观察systemd
CentOS 上某个服务的输出,就好像我从控制台启动了该服务一样。是的,我可以看到 的输出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
字符的情况下打印输出,则此输出仍然不会很活跃。