Process supervision
# Process supervision

Process supervision is a form of operating system service management 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
* minit: A small, yet feature-complete Linux init
* Monit
* runit
* Supervisor: A Python implementation
* s6: Low-level process and service supervision
* Systemd
