Warum erstellt mein Vorgesetzter viele der gleichen Prozesse?

Warum erstellt mein Vorgesetzter viele der gleichen Prozesse?

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 supervisorderstelle 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 sshmit der -fFlagge 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 -fFlagge entfernen, sollte es wie erwartet funktionieren.

verwandte Informationen