liminix

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 384835c89d15900437ed4dca51a8ecf842ffec00
parent 5051625d31a743e60323825e917bcce058a682d9
Author: Daniel Barlow <dan@telent.net>
Date:   Tue,  6 Aug 2024 14:14:52 +0100

admin doc: updte round-robin, explain health check

Diffstat:
Mdoc/admin.rst | 21++++++++++++++++++---
Rexamples/l2tp.nix -> examples/router-with-l2tp.nix | 0
2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/doc/admin.rst b/doc/admin.rst @@ -72,12 +72,27 @@ time. For example: active when a particular hardware device (identified by uevent/sysfs directory) is present. -* :command:`s6-rc-round-robin` can be used in a service controller to - invoke two or more services in turn, running the next one when the +* ``svc.round-robin.build`` creates a service controller that + invokes two or more services in turn, running the next one when the process providing the previous one exits. We use this for failover from one network connection to a backup connection, for example. -The Configuration section of the manual describes this in more detail. +* ``svc.health-check.build`` creates a service controller that + runs a controlled service and periodically tests whether it is + healthy by running an external health check command or script. If the + check command repeatedly fails, the controlled service is + restarted. + + The Configuration section of the manual describes controlled + services in more detail. Some operational considerations + +* ``round-robin`` detects a service status by looking at its + :file:`outputs` directory, so it won't work unless the service + creates some outputs. This is considered a bug and will be + fixed in a future release + +* ``health-check`` works for longruns but not for oneshots, as it + internally relies on ``s6-svc`` to restart the process Logs ==== diff --git a/examples/l2tp.nix b/examples/router-with-l2tp.nix