【问题标题】:How to detect a hung linux service?如何检测挂起的 linux 服务?
【发布时间】:2015-12-15 18:25:39
【问题描述】:

我注意到我的一些 linux 服务器将挂起一个 linux 服务。我知道它挂起的唯一方法是依赖服务的操作失败,当我重新启动服务时它无法停止但它启动正常。

如果我执行service <servicename> status,它会说它正在运行,如果我执行ps -ef | grep <servicename>,它只会显示一个为该服务运行的进程,这是正确的。

还有什么我可以检查以了解它是否挂起的吗?我正在尝试积极主动地恢复这些服务,并确定它们被挂起的原因。

作为参考,服务主要是 openstack-nova-compute 和 openstack-cinder-volume。我可以在 rabbitMQ 开始构建时检测到 cinder 卷服务,但 nova-compute 没有发生同样的事情。

这很难测试,因为就像我说的那样,我知道的唯一方法是,如果我尝试在 OpenStack 中的那个节点上做某事并且它失败或挂起,然后我重新启动服务。

【问题讨论】:

  • 有关专业服务器或网络相关基础设施管理的问题对于 Stack Overflow 来说是无关紧要的,除非它们直接涉及编程或编程工具。您可能可以获得有关服务器故障的帮助。 1
  • 对不起,我没有意识到这个网站只是为了编程相关的问题
  • 欢,可能是个不错的选择,在那里问,在这里删除。不过你的选择!祝你有美好的一天!

标签: linux centos openstack centos6 openstack-nova


【解决方案1】:

您可以使用一些工具(脚本,甚至像 Nagios 这样的“真实”监控工具)来完全按照您所说的去做 - 模仿那些“依赖服务的操作” - 这意味着尝试联系相关服务,并且失败时,将发送某种通知! (甚至自动重启。)

【讨论】:

  • 为什么我的回答被否决了?做我所描述的确实是现实世界监控生产系统的常规做法!是的,甚至可能涉及到编程,因为例如需要对那些 Nagios 脚本进行编程(即使它是“唯一的”Bash 脚本)。
  • 我的回答与 Anony-Mousse 的不同,因为他说的是发送与 HTTP 相关的“示例请求”,这只是任何“linux 服务”所能做的非常有限的一部分。这就是为什么我说,无论该服务做什么,都需要以正确的方式请求(“模仿”)。而且该请求显然不限于 TCP 协议!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 2014-09-22
相关资源
最近更新 更多