![¿Por qué mi supervisor crea muchos de los mismos procesos?](https://rvso.com/image/1558665/%C2%BFPor%20qu%C3%A9%20mi%20supervisor%20crea%20muchos%20de%20los%20mismos%20procesos%3F.png)
Configuración:
[program:aws-mysql]
command=ssh -NCf -L 13306:host1:3306 user@host2
directory=/var/www/ECAME
user=root
autorestart=true
exitcodes=0
estado:
# systemctl status supervisord.service
● supervisord.service - Process Monitoring and Control Daemon
Loaded: loaded (/usr/lib/systemd/system/supervisord.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2018-04-15 15:13:22 CST; 24min ago
Process: 437 ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf (code=exited, status=0/SUCCESS)
Main PID: 502 (supervisord)
CGroup: /system.slice/supervisord.service
├─ 502 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
├─1892 ssh -NCf -L 13306:host1:3306 user@host2
├─1926 ssh -NCf -L 13306:host1:3306 user@host2
├─1947 ssh -NCf -L 13306:host1:3306 user@host2
├─1967 ssh -NCf -L 13306:host1:3306 user@host2
├─1996 ssh -NCf -L 13306:host1:3306 user@host2
├─2008 ssh -NCf -L 13306:host1:3306 user@host2
├─2037 ssh -NCf -L 13306:host1:3306 user@host2
├─2067 ssh -NCf -L 13306:host1:3306 user@host2
├─2078 ssh -NCf -L 13306:host1:3306 user@host2
├─2111 ssh -NCf -L 13306:host1:3306 user@host2
├─2122 ssh -NCf -L 13306:host1:3306 user@host2
├─2160 ssh -NCf -L 13306:host1:3306 user@host2
├─2180 ssh -NCf -L 13306:host1:3306 user@host2
├─2210 ssh -NCf -L 13306:host1:3306 user@host2
├─2248 ssh -NCf -L 13306:host1:3306 user@host2
├─2260 ssh -NCf -L 13306:host1:3306 user@host2
... a lot of " ssh -NCf -L 13306:host2:3306 user@host2"
Entonces, ¿por qué supervisord
creo muchos procesos iguales? Creo que debería haber sólo uno ssh -NCf -L 13306:host2:3306 user@host2
.
Respuesta1
Supervisorespera que los subprocesos permanezcan en primer plano:
Los programas destinados a ejecutarse bajo supervisión no deberían demonizarse a sí mismos. En cambio, deberían aparecer en primer plano. No deben desprenderse del terminal desde el que se inician.
Empezaste ssh
con la -f
bandera,lo que significa:
Solicita que ssh pase a segundo plano justo antes de la ejecución del comando.
El supervisor cree que el programa se cierra e inicia una nueva instancia después de cualquier limitación que realice. Seguirá haciendo esto para siempre.
Si elimina la -f
bandera, debería funcionar como se esperaba.