mention health check in docs

This commit is contained in:
Daniel Barlow 2024-07-30 22:53:21 +01:00
parent c4d00e062a
commit 5051625d31
1 changed files with 24 additions and 14 deletions

View File

@ -83,22 +83,28 @@ service supervisor. A typical SOHO router might have services to
* enable/disable IP packet forwarding * enable/disable IP packet forwarding
* mount filesystems * mount filesystems
(Some of these might not be considered services using other definitions (Some of these might not be considered services using other
of the term: for example, this use of L2TP would be a "client" in the definitions of the term: for example, this L2TP process would be a
client/server classification; and enabling packet forwarding doesn't "client" in the client/server classification; and enabling packet
require any long-lived process - just a setting to be toggled. forwarding doesn't require any long-lived process - just a setting to
However, there is value in being able to use the same abstractions for be toggled. However, there is value in being able to use the same
all the things to manage them and specify their dependency abstractions for all the things to manage them and specify their
relationships - so in Liminix "everything is a service") dependency relationships - so in Liminix "everything is a service")
The service supervision system enables service health monitoring,
restart of unhealthy services, and failover to "backup" services when
a primary service fails or its dependencies are unavailable. The
intention is that you have a framework in which you can specify policy
requirements like "ethernet wan dhcp-client should be restarted if it
crashes, but if it can't start because the hardware link is down, then
4G ppp service should be started instead".
Any attribute in `config.services` will become part of the default set Any attribute in `config.services` will become part of the default set
of services that s6-rc will try to bring up. of services that s6-rc will try to bring up. Services are usually
started at boot time, but **controlled services** are those that are
Services are usually started at boot time, but **controlled services** required only in particular contexts. For example, a service to mount
are those that are required only in particular contexts. For example, a USB backup drive should run only when the drive is attached to the
a service to mount a USB backup drive should run only when the drive system. Liminix currently implements three kinds of controlled service:
is attached to the system. Liminix currently implements two kinds of
controlled service:
* "uevent-rule" service controllers use sysfs/uevent to identify when * "uevent-rule" service controllers use sysfs/uevent to identify when
particular hardware devices are present, and start/stop a controlled particular hardware devices are present, and start/stop a controlled
@ -108,6 +114,10 @@ controlled service:
it allows you to specify a list of services and runs each of them it allows you to specify a list of services and runs each of them
in turn until it exits, then runs the next. in turn until it exits, then runs the next.
* the "health-check" service wraps another service, and runs a "health
check" command at regular intervals. When the health check fails,
indicating that the wrapped service is not working, it is terminated
and allowed to restart
Writing services Writing services