【发布时间】:2017-02-02 09:27:30
【问题描述】:
我在 Redhat 7.1 上有一个服务,我使用 systemctl start、stop、restart 和 status 来控制。有一次 systemctl 状态返回 active,但服务“后面”的应用程序响应的 http 代码与 200 不同。
我知道我可以使用 Monit 或 Nagios 来检查这一点并重新启动 systemctl - 但我想知道在使用 systemd 时是否存在默认设置,因此我不需要安装其他工具。
我首选的解决方案是,如果 http 返回码与 200 不同,则在没有 systemd 本身以外的其他工具的情况下完全自动重新启动我的服务 - (并且可能有可能通知 Hipchat 房间或发送电子邮件......)
我试过用谷歌搜索这个主题 - 没有运气。请帮忙:-)
【问题讨论】:
-
@shellter,我不同意这是题外话。健康检查不是最终用户关心的问题,但在很大程度上是一个开发问题/问题。您愿意描述一下决定关闭的原因吗?
-
...我可能会看到一个论点,认为这更像是一个操作问题(与 ServerFault 相比 StackOverflow 更相关),但我不相信这个论点是一个令人信服的论点,因为制作 OP 想要的功能需要开发知识——我的回答提供了一个指向要使用的特定 API 的指针,这不是我们期望在 ServerFault 讨论中成为主题的知识。
-
...需要开发知识和代码更改,因为需要编写调用
sd_notify()并显示健康检查结果的代码,或者执行等效的套接字写入本身。