- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在 Redhat 7.1 上有一个服务,我使用 systemctl start、stop、restart 和 status 来控制。有一次 systemctl 状态返回事件状态,但服务“背后”的应用程序响应的 http 代码不同于 200。
我知道我可以使用 Monit 或 Nagios 来检查它并重新启动 systemctl - 但我想知道在使用 systemd 时是否默认存在某些东西,这样我就不需要安装其他工具。
如果 http 返回码不同于 200,我的首选解决方案是完全自动重启我的服务,除了 systemd 本身之外没有其他工具——(也许有可能通知 Hipchat 房间或发送电子邮件......)
我试过用谷歌搜索这个主题 - 但没有成功。请帮助:-)
最佳答案
systemd 有一个 native (基于套接字的)健康检查方法,但它不是基于 HTTP 的。但是,您可以编写一个 shim,通过 HTTP 轮询状态并将其转发到 native 机制。
systemd 世界中正确的做法是使用 sd_notify
套接字机制在您的应用程序完全可用时通知 init 系统。为您的服务使用 Type=notify
以启用此功能。
您可以使用 sd_notify() 直接写入此套接字调用,或者您可以检查 NOTIFY_SOCKET
环境变量以获取名称,并让您自己的代码在应用程序返回 200 秒时将 READY=1
写入该套接字。
如果你想把它交给一个单独的进程,通过 HTTP 轮询你的进程,然后写入套接字,你可以这样做——确保适本地设置 NotifyAccess
(默认情况下,只允许服务的主进程写入套接字。
如果您有兴趣检测应用程序在完全初始化后失败并触发重启的情况,sd_notify
套接字也适用于这种情况:
发送 WATCHDOG_USEC=...
设置成功测试之间允许的时间量,然后当您成功进行自检时发送 WATCHDOG=1
;只要在配置的时间内没有看到成功的测试,您的服务就会重新启动。
关于linux - Systemd http 健康检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39679067/
我在某处读到有一个 guiding principle将表中的行数限制在 100 万以下。我想知道这是不是真的。对于我拥有的一个项目,我将大致拥有分别包含 10,000 行、40,000 行、160,
我是一个相当新的程序员和经验丰富的运行者,一直在研究 Garmin Health API 并计划制作一个应用程序。我的第一个想法是在完成 10x400 米之后简单地获得平均时间,这是我几乎每个月都会做
for ($i=1; $i query("UPDATE `jpa` SET `war` = $b WHERE `id` = $a"); $mysqli->query("UPDATE `
我使用 Samsung S Health SDK 开发了我的应用程序。我想在我的应用程序中添加 S 健康的步行、运行和骑自行车跟踪。 如何添加这些功能? 最佳答案 我在 readTodayWalkin
到目前为止,我知道 EOF 是一个特殊字符,自动插入到文本文件的末尾以指示其结束。但我现在觉得需要对此进行更多澄清。我在 Google 和 Wikipedia 页面上查看了 EOF,但他们无法回答以下
假设我选择了一个随机来源,例如 CNN。根据关键字自动将抓取的文章分类,或者针对不同的类别抓取网站的各个部分,例如 cnn.com/tech 或/entertainment,这样会更有利吗?第二个选项
我在我的 Spring Boot + Spring Cloud 项目中使用 ConfigServer。我曾经监控端点/health,但由于 ConfigClient 在每个请求中询问 ConfigSe
对 projectname.appspot.com/_ah/health 的请求返回以下错误 { "code": 5, "message": "Method does not exist.",
我想检查我的服务的健康状况,了解每个端点的指标。我的服务调用其他一些服务并接收 Json 代码,我用它制作模板,然后将它发送到 http.ResponseWriter。 我搜索并找到了这个包“gocr
我在 javascript (React.j) 中编写了以下使用 for 循环的函数: getOpponentTeam: function(playerTeamId){ var matches =
我是 codeigniter 的新手,我想通过传递许多条件来选择用户的详细信息。我通过了一些条件,例如: $this->db->where ( 'userprofile.Disability', $
我有一个在 pm2 上运行的 nodejs 应用程序,我需要能够在发生崩溃/重启时发送电子邮件通知。我的想法是监视应用程序的崩溃并从 pm2-health 触发邮件操作。 pm2-health 模块的
我正在尝试使用 Jsoup 库(版本 1.11.3)读取域 - iv4u.health 的 URL 正文,但出现“重定向过多”错误。下面是我正在使用的代码 - public class Example
我是一名优秀的程序员,十分优秀!