#systemd #watchdog #docker #connect #service #health-check #periodic

app healthdog

辅助程序,用于将外部周期性健康检查与 systemd 的 watchdog 支持连接起来

2 个稳定版本

使用旧的 Rust 2015

1.0.1 2020 年 1 月 14 日
1.0.0 2019 年 11 月 4 日

Unix API 类别下排名第 884

Apache-2.0LGPL-2.1-or-later WITH GCC-exception-2.0

8KB
103 行(不包括注释)

healthdog

healthdog 是一个实用程序,它定期运行健康检查程序,并宠爱 systemd 的服务 watchdog。

安装

您可以使用 cargo build --release 来构建此项目,然后将 ./target/release/healthdog 复制到 /usr/local/bin/healthdog

用法

假设我们希望运行 Docker 并持续监控守护程序是否响应,并在它未响应时重启。

首先,我们创建一个程序来测试 Docker 守护程序,并在成功时返回 0,否则返回 1

  • /usr/bin/check-docker:
#!/bin/sh

set -o errexit

# Check that info works
docker info > /dev/null
# Check that we can read containers from disk
docker ps > /dev/null

然后,我们在 ExecStart 指令前加上 healthdog 并设置我们希望的 WatchdogSec 值。

  • docker.service
[Unit]
Description=Docker Application Container Engine

[Service]
Type=simple
ExecStart=/usr/local/bin/healthdog --healthcheck=check-docker /usr/bin/dockerd
WatchdogSec=10
Restart=always

[Install]
WantedBy=multi-user.target

该服务将启动 healthdog,它将每隔 5 秒(systemd 时间的一半)运行 check-docker,并在成功返回时宠爱 watchdog。

依赖关系

~3MB
~54K SLoC