From bb9a68add4feef7c53ba3994256745ea99cffef8 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Mon, 20 Mar 2017 20:34:12 +0000 Subject: Implement permanent failure for services via ./finish exiting 125 --- doc/s6-supervise.html | 4 ++++ doc/servicedir.html | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'doc') diff --git a/doc/s6-supervise.html b/doc/s6-supervise.html index 081aeae..55cba6f 100644 --- a/doc/s6-supervise.html +++ b/doc/s6-supervise.html @@ -56,6 +56,10 @@ s6-supervise kills it with a SIGKILL. This can be configured via the
  • When ./finish dies (or is killed), s6-supervise sends a 'D' event to ./event. Then it restarts ./run unless it has been told not to.
  • +
  • If ./finish exits 125, then s6-supervise sends a 'O' event +to ./event before the 'D', and it +does not restart the service, as if s6-svc -O had +been called. This can be used to signify permanent failure to start the service.
  • There is a minimum 1-second delay between two ./run spawns, to avoid busylooping if ./run exits too quickly.
  • When killed or asked to exit, it waits for the service to go down one last time, then diff --git a/doc/servicedir.html b/doc/servicedir.html index 98929bb..a0d98f0 100644 --- a/doc/servicedir.html +++ b/doc/servicedir.html @@ -87,15 +87,21 @@ is executed everytime the run script dies. Generally, its main purpose is to clean up non-volatile data such as the filesystem after the supervised process has been killed. If the foo service is supposed to be up, foo/run is restarted -after foo/finish dies. By default, a finish script must do -its work and exit in less than +after foo/finish dies. +
  • A directory named supervise. It is automatically created by s6-supervise if it does not exist. This is where s6-supervise stores its information. The directory -- cgit v1.2.3