From 384835c89d15900437ed4dca51a8ecf842ffec00 Mon Sep 17 00:00:00 2001 From: Daniel Barlow Date: Tue, 6 Aug 2024 14:14:52 +0100 Subject: [PATCH] admin doc: updte round-robin, explain health check --- doc/admin.rst | 21 ++++++++++++++++++--- examples/{l2tp.nix => router-with-l2tp.nix} | 0 2 files changed, 18 insertions(+), 3 deletions(-) rename examples/{l2tp.nix => router-with-l2tp.nix} (100%) diff --git a/doc/admin.rst b/doc/admin.rst index e483c3c..d6bdf4d 100644 --- 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 similarity index 100% rename from examples/l2tp.nix rename to examples/router-with-l2tp.nix