Process supervision

Process-Supervision is the ability to manage (long lived) processes or rather daemons and be able to get (automated) process restart if need be, be it a process crash or signal mis-use. There are curently four well known implementations using the same API: Daemontools, Daemontools-encore, Runit and S6. The two later suites can also be used as init PID 1 replacement; Although the latter case, S6 that is, is left to the distribution or Operating System implementation.

Damontools
Daemontools

Daemontools-encore
See Daemontools-encore main article for more info.

Runit
See Runit main article for more info.

S6
See S6 main article for more info.

Supervisor
Supervisor

There is a Runit backend for OpenRC experiment on BGO, see external ressources. The major blocker issue is starting a service in a race free conditions in a timely manner and be able to report success or failure of said service which does not fit quite well on the scan service directory (/service/) model without races. This is true at least for Runit. Maybe putting a stop file in the service directory /service/SERVICE/stop can help... be but this has to still to be tested.