![Warum erstellt mein Vorgesetzter viele der gleichen Prozesse?](https://rvso.com/image/1558665/Warum%20erstellt%20mein%20Vorgesetzter%20viele%20der%20gleichen%20Prozesse%3F.png)
Konfiguration:
[program:aws-mysql]
command=ssh -NCf -L 13306:host1:3306 user@host2
directory=/var/www/ECAME
user=root
autorestart=true
exitcodes=0
Status:
# 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"
Warum also supervisord
erstelle ich viele gleiche Prozesse? Ich denke, es sollte nur einen geben ssh -NCf -L 13306:host2:3306 user@host2
.
Antwort1
Aufsichterwartet, dass Unterprozesse im Vordergrund bleiben:
Programme, die unter Supervisor ausgeführt werden sollen, sollten sich nicht selbst als Daemon ausführen. Stattdessen sollten sie im Vordergrund ausgeführt werden. Sie sollten sich nicht von dem Terminal trennen, von dem aus sie gestartet werden.
Du hast ssh
mit der -f
Flagge angefangen,was bedeutet:
Fordert SSH auf, unmittelbar vor der Befehlsausführung in den Hintergrund zu gehen.
Der Supervisor geht davon aus, dass das Programm nach der Drosselung geschlossen wurde und eine neue Instanz startet. Dies wird für immer so weitergehen.
Wenn Sie die -f
Flagge entfernen, sollte es wie erwartet funktionieren.