我想在linux中监控几个服务。如果它们发生故障我想重新启动它们。
我正在编写一个crontab,它将每隔60秒使用jps命令获取服务的名称,如果它们不在结果集中,则发出特定于每个服务的重启命令。
我希望这些服务始终可用,以防它们发生故障,我可以让它们重新启动并运行。
我很担心,如果这些服务中的任何一个挂起,我怎么知道。有没有办法了解挂起服务并杀死它们?
是否有一种干净的方式来实现服务的自动重启,这将同时处理“停机服务”和“挂断服务”。
由于
答案 0 :(得分:1)
我建议,假设可以使用网络查询这些服务,您通过localhost调用服务,如果超时,则使用killall或pkill命令终止它们并重新启动它们。
很抱歉没有解释很多,我希望它看起来非常简单......
答案 1 :(得分:1)
有没有办法了解挂起服务并杀死它们?
告诉任意过程是否已经挂起是非常重要的。你可以检查几件事:
curl
或以其他方式发送影响较小的测试请求。在一般情况下,它是无法解决的,但这些是大多数流程可以检查的常见指针。
答案 2 :(得分:0)
或许 service --status-all
可以提供帮助吗?只需grep输出并搜索[+]
,表示它已启动。
实际上,没必要那样做。只需致电service 'service_name' status
。