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