webserver - 如何使用 daemontools 监督网络服务器?

标签 webserver daemon smalltalk start-stop-daemon

关闭。这个问题不满足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/

相关文章:

c# - 是否可以在多个 Web 服务器之间共享 HttpRuntime.Cache?

Python ThreadingMixin 和 BaseHTTPServer

python - 当目录不为空时执行 python 脚本 - 目录监控

Python 线程定时器初始守护进程

linux - git 守护进程 : "unable to allocate any listen sockets on host (null) port 9418"

scrollview - 如何使滚动 Pane 适应其内容?

loops - 嵌套循环 Smalltalk

formatting - 如何在 Smalltalk/Pharo 中打印固定字符数的数字

android - android 热点上的网络服务器 - 它的 IP 是多少?

c# - CS0234 类型或命名空间名称 'Owin' 在命名空间 'Microsoft' 中不存在