systemd:在服务启动期间查看消息

systemd:在服务启动期间查看消息

我正在使用 SysV 来提供我的服务。

我有:

service myservice restart

现在正在迁移到 systemd,我更喜欢它。唯一的缺点是:

systemctl restart myservice

没有显示我的服务的标准输出,这表明进度。

我知道我可以使用:

journalctl -u myservice -f -b

但我需要另一个控制台,这不是一个舒适的解决方案。journalctl当服务完成启动时也不会停止。

有什么想法可以改善这一点吗?

更新

我的目标是获得旧的 SysV 行为:启动服务时,显示控制台输出,直到服务启动完成。这样,就可以知道是否存在一些启动问题或了解进度。有时启动速度会很慢。

答案1

这取决于你想要什么。如果你只是想检查active (running)状态,那就systemctl status myservice足够了。active (running)状态通常意味着服务正在实现其目的。

如果您需要更简单的服务活动测试,您可以使用:

# systemctl is-active myservice
active
# echo $?
0

故障状态可能为:# systemctl is-active myservice inactive# echo $? 3

因此你可以在测试中使用它。


但是如果你确实需要journalctl -f并且想在一段时间后停止它,你可以使用timeout命令。看示例:

timeout 20s journalctl -f

在这个例子中,journalctl 进程将在 20 秒后被终止。如果你重定向输出,那么你可以解析它。

相关内容