La diferencia es que el advenedizo es un reemplazo inicial mientras que el supervisor es un Process Control System
. Esta explicación se da en el sitio del supervisor :
Comparte algunos de los mismos objetivos de programas como launchd, daemontools y runit. A diferencia de algunos de estos programas, no debe ejecutarse como un sustituto de init como "Id. De proceso 1". En cambio, debe usarse para controlar procesos relacionados con un proyecto o un cliente, y debe comenzar como cualquier otro programa en el momento del arranque.
Esto significa que el supervisor en sí mismo se iniciaría por arranque, ya sea a través de un archivo de trabajo de arranque o un script de inicio sysV. Personalmente, he optado por utilizar un administrador de procesos en lugar de un inicio simple por las siguientes razones:
- El servicio no daemoniza correctamente
- Se sabe que el servicio muere y necesita ser monitoreado y reiniciado
Un ejemplo de un programa que no daemoniza adecuadamente es cuando no cierra stdout y stderr y continúa escribiendo datos en esas ubicaciones. El supervisor puede manejar el registro de esa salida.