healthdog is a utility program that runs a healthcheck program periodically and pets systemd's service watchdog.
You can use
cargo build --release to build this project and then copy
Let's say that we wish to run Docker and continuously monitor that the daemon is responsive and restart in case it isn't.
First we create a program that will test the docker daemon and return 0 on success, 1 otherwise.
#!/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
Then we prefix the
ExecStart directive with healthdog and also set our desired
[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
The service will spawn healthdog which in turn will run
check-docker every 5
seconds (half the systemd duration) and pet the watchdog if it successfully