Die Lösung besteht darin,
hinzuzufügenKillMode=process
zum Serviceblock. Der Standardwert ist control-group
was bedeutet, dass systemd alle untergeordneten Prozesse bereinigt.
Von man systemd.kill
KillMode=Gibt an, wie Prozesse dieser Unit beendet werden sollen. Eine der Kontrollgruppen, Prozess, gemischt, keine.
Wenn auf control-group gesetzt, werden alle verbleibenden Prozesse in der Kontrollgruppe dieser Unit beim Unit-Stop beendet (für Dienste:nachdem der Stop-Befehl ausgeführt wurde, wie mit ExecStop=konfiguriert). Wenn es auf process gesetzt ist, wird nur der Hauptprozess selbst beendet. Wenn gemischt, wird das SIGTERM-Signal (siehe unten) an den Hauptprozess gesendet, während das nachfolgende SIGKILL-Signal (siehe unten) an alle verbleibenden Prozesse der Steuergruppe der Einheit gesendet wird. Wenn es auf none gesetzt ist, wird kein Prozess beendet. In diesem Fall wird beim Stoppen der Einheit nur der Stoppbefehl ausgeführt, ansonsten wird kein Prozess beendet. Prozesse, die nach dem Stoppen am Leben bleiben, werden in ihrer Kontrollgruppe belassen, und die Kontrollgruppe bleibt nach dem Stoppen bestehen, es sei denn, sie ist leer.