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 - U ...
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 is a process supervision toolkit written by Daniel J. Bernstein as an alternative to other system initialization and process supervision tools, such as Init
In Unix-based computer operating systems, init (short for ''initiali ...
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
Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code o ...
*
Initng
Initng is a full replacement of the UNIX System V init, the first process spawned by the kernel in Unix-like computer operating systems, which is responsible for the initialization of every other process. Initng's website calls initng "The next ...
*
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
Th ...
minit A small, yet feature-complete Linux init
*
Monit
Monit is a free, open-source process supervision tool for Unix and Linux. With Monit, system status can be viewed directly from the command line, or via the native HTTP(S) web server. Monit is able to do automatic maintenance, repair, and run me ...
*
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 r ...
Supervisor A Python implementation
s6 Low-level process and service supervision
*
Systemd
systemd is a software suite that provides an array of system components for Linux operating systems. Its main aim is to unify service configuration and behavior across Linux distributions; Its primary component is a "system and service manager ...
References
{{Service management in Unix
Computing terminology