Herramienta de control de procesos que permite administrar y monitorear servicios y demonios. Es un sistema para controlar y mantener el estado del proceso. Por ejemplo, si tenemos un script que siempre está corriendo, creamos un archivo de configuración para él:
# nano /etc/supervisor/conf.d/mi_proceso.conf
[program:mi_proceso]
command=python3 ~/scripts/script1.sh
autostart=true
autorestart=true
stderr_logfile=/var/log/mi_proceso.err.log
stdout_logfile=/var/log/mi_proceso.out.log
Este archivo dice a supervisor que ejecute el script de bash, que lo reinicie si se detiene y registrar tanto los errores como la salida estándar en archivos de log.
# supervisorctl reread
# supervisorctl update
# supervisorctl status
# supervisorctl start mi_proceso
# supervisorctl stop mi_proceso
# supervisorctl restart mi_proceso