首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用daemontools管理How服务器?

如何使用daemontools管理How服务器?
EN

Stack Overflow用户
提问于 2012-05-18 18:11:45
回答 2查看 1.3K关注 0票数 5

我应该如何编写daemontools superviser脚本?

我已经开始使用D.J.Bernsteins的守护进程工具来保持一些进程运行,并且工作得很好。但现在我需要监视这些进程上的一些附加条件,但我找不到关于如何做到这一点的好信息。

我的场景是,我有一些为web应用程序(pharo smalltalk虚拟机)运行的进程,它们在各自的端口上响应http (这是为了负载平衡)。我想以某种方式ping那些,以验证他们不仅在运行,而且正在响应http请求。如果它们在超过30秒的时间内没有以某种方式响应请求,则应将其视为崩溃并简单地重新启动。

使用daemontools可以做到这一点吗?如果是这样的话,我应该如何编写这个脚本,应该把它放在哪里?或者关于这方面的文档在哪里?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-19 17:18:47

最简单的解决方案是使用一个休眠30秒的脚本创建另一个daemontool任务,然后测试服务是否存在(例如,使用wget或curl )。如果服务没有及时响应,您可以重新启动服务(svc -t yourapp)和/或发送通知。新服务的run-script可能看起来像这样简单:

代码语言:javascript
复制
#!/bin/sh
sleep 30
if ! wget --quiet --timeout=5 --delete-after "http://yourapp.com/" ; then
  svc -t /etc/service/yourapp
fi

我对Munin这样的工具也有很好的体验。同样,您需要提供一个脚本来提供有关映像状态的信息。如果您使用REST服务设置您的映像,您甚至可以提供真正有趣的指标,例如活动会话、非活动会话、gc参数、内存消耗、数据库统计数据等。然后,该工具会随着时间的推移绘制出漂亮的图形,并允许您指定边界,以便在事情表现不佳时得到通知。

票数 6
EN

Stack Overflow用户

发布于 2012-05-19 09:37:24

要检测服务是否响应,可以使用curl (非常适合HTTP和命令行/shell脚本)

代码语言:javascript
复制
curl --connect-timeout 10 http://8.8.8.8 
curl: (28) connect() timed out!

你还可以写一些更复杂的东西,比如检查响应是否为200 (OK)等等。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10650686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档