关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。
想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。
2年前关闭。
Improve this question
我应该如何编写 daemontools 监督程序?
我已经开始使用 D. J. Bernsteins 的 daemontools 来保持一些进程的运行并且工作正常。但是现在我需要监控这些进程的几个附加条件,但我没有找到关于如何做到这一点的好信息。
我的场景是,我有一些进程在为 Web 应用程序(pharo smalltalk 虚拟机)运行,并且它们响应 http,每个进程都在其端口中(用于负载平衡)。我想以某种方式 ping 那些以验证它们不仅在运行而且还在响应 http 请求。如果它们超过 30 秒没有以某种方式响应请求,它们应该被视为崩溃并简单地重新启动。
这甚至可以用 daemontools 实现吗?如果是这样,我应该如何编写这个脚本以及我应该把它放在哪里?或者这方面的文档在哪里?
最佳答案
最简单的解决方案是使用脚本创建另一个 daemontool 任务,该任务会休眠 30 秒,然后测试服务是否存在(例如使用 wget 或 curl)。如果服务没有及时响应,您可以重新启动服务 ( svc -t yourapp
) 和/或发送通知。新服务的运行脚本看起来很简单:
#!/bin/sh
sleep 30
if ! wget --quiet --timeout=5 --delete-after "http://yourapp.com/" ; then
svc -t /etc/service/yourapp
fi
我也有很好的经验,比如 Munin .同样,您需要提供一个脚本来提供有关图像状态的信息。如果您使用 REST 服务设置图像,您甚至可以提供非常有趣的指标,例如事件 session 、非事件 session 、gc 参数、内存消耗、数据库统计信息……然后该工具会随时间绘制精美的图表,并让您指定边界当事情表现不佳时得到通知。
关于webserver - 如何使用 daemontools 监督网络服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10650686/