启动或停止服务后,能否使systemd显示服务状态?


8

我试图让systemd执行init.d脚本所要执行的工作,在手动给定启动或停止命令后,自动显示服务的状态。这可能吗?

不幸的是,systemd会突然弹出,因为它在后台运行,然后您必须执行第二个命令以显示状态,开始或停止可能有效或无效,除非您询问并让您幸福无知,否则systemd不会告诉您。

即。我试图得到

service nginx status

在我执行

service nginx start

要么

service nginx restart

(或在大脑受损的systemd中 systemctl start nginx.service


1
我使用“大脑损坏”命令(我喜欢它们!)。实际上,当一切都很好时,他们什么也没说,但是会在失败时通知您。至少在openSUSE 13.1上是如此。您确定失败时它们是“沉默的”吗?你尝试了systemctl start nginx.service && echo SUCCESS || echo failure吗?
惠更斯2014年

2
@Huygens并不指望systemd能够检测到所有失败,最肯定可以是无声失败或警告。进程在后台启动,systemd退出控制,这与init.d完全不同,我可以看到与PID文件创建失败一致地发生了。手动启动或重新启动后获取状态是systemd绝对必须的(这也是我的问题)。
ck_14年

感谢您的澄清,我在这里学到了一些东西!我期待着这个问题的答案!
惠更斯州2014年

braindead语法是服务之一,因为与更好的systemd语法不同,它不允许您一次对多个服务进行操作:systemctl stop service1 service2 service3

1
如果在检查systemctl@Huygens 的退出状态时仍然看到相同的不一致,则问题可能是nginx.service成功启动但随后崩溃。尝试检查日志或Nginx日志中的日志。
阿米尔

Answers:


1

您的用例没有内置命令,因此您必须为自己喜欢的shell或简单的脚本包装程序创建一个别名。


0

要使systemd更“冗长”,请在您的行中添加/取消注释以下行/etc/systemd/journald.conf,然后重新启动:

ForwardToConsole=yes
MaxLevelConsole=debug
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.