title: Process supervision
text: # 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
  