Process supervision is a form of
operating system service management In computing, mechanisms and techniques for managing services often differ by operating system. Examples of operating system service management are:
* Service Control Manager - Used by Microsoft Windows
* launchd - Used by Apple macOS
* systemd ...
in which some master process remains the parent of the service processes.
Benefits
Benefits
compared to traditional process launchers and system boot mechanisms, like
System V init, include:
* Ability to restart services which have failed
* The fact that it does not require the use of "pidfiles"
* Clean process state
* Reliable logging, because the master process can capture the stdout/stderr of the service process and route it to a log
* Faster (concurrent) and ability to start up and stop
Implementations
*
daemontools
daemontools-encore Derived from the public-domain release of daemontools
Eye A Ruby implementation
Finit Fast, Extensible Init for Linux Systems
God A Ruby implementation
immortal A Go implementation
*
PM2: A Process Manager for
Node.js
*
Initng
*
launchd
launchd is an init and operating system service management daemon created by Apple Inc. as part of macOS to replace its BSD-style init and SystemStarter. There have been efforts to port launchd to FreeBSD and derived systems.
Components
...
minit A small, yet feature-complete Linux init
*
Monit
*
runit
runit is an init and service management scheme for Unix-like operating systems that initializes, supervises, and ends processes throughout the operating system. Runit is a reimplementation of the daemontools process supervision toolkit that ...
Supervisor A Python implementation
s6 Low-level process and service supervision
*
Systemd
References
{{Service management in Unix
Computing terminology