我试图让systemd执行init.d脚本所要执行的工作,在手动给定启动或停止命令后,自动显示服务的状态。这可能吗?
不幸的是,systemd会突然弹出,因为它在后台运行,然后您必须执行第二个命令以显示状态,开始或停止可能有效或无效,除非您询问并让您幸福无知,否则systemd不会告诉您。
即。我试图得到
service nginx status
在我执行
service nginx start
要么
service nginx restart
(或在大脑受损的systemd中 systemctl start nginx.service
)
@Huygens并不指望systemd能够检测到所有失败,最肯定可以是无声失败或警告。进程在后台启动,systemd退出控制,这与init.d完全不同,我可以看到与PID文件创建失败一致地发生了。手动启动或重新启动后获取状态是systemd绝对必须的(这也是我的问题)。
—
ck_14年
感谢您的澄清,我在这里学到了一些东西!我期待着这个问题的答案!
—
惠更斯州2014年
braindead语法是服务之一,因为与更好的systemd语法不同,它不允许您一次对多个服务进行操作:systemctl stop service1 service2 service3
—
神
如果在检查
—
阿米尔
systemctl
@Huygens 的退出状态时仍然看到相同的不一致,则问题可能是nginx.service
成功启动但随后崩溃。尝试检查日志或Nginx日志中的日志。
systemctl start nginx.service && echo SUCCESS || echo failure
吗?