Systemd: Untergeordnete Prozesse trennen
Wenn Sie einen lang laufenden Prozess vom Terminal aus starten, möchten Sie möglicherweise, dass untergeordnete Prozesse auch dann bestehen bleiben, wenn die Der Hauptprozess wird neu gestartet oder beendet. Während dies bei manueller Ausführung machbar ist, wird es problematisch, wenn der Hauptprozess als systemd-Dienst ausgeführt wird.
In systemd ist die standardmäßige Beendigungsmethode für untergeordnete Prozesse die Kontrollgruppe, was dazu führt, dass alle untergeordneten Prozesse beendet werden nach der Beendigung des übergeordneten Prozesses. Um dies zu verhindern, können Sie KillMode=process in der Dienstkonfiguration angeben.
So implementieren Sie es für das angegebene Beispiel:
[Unit] Description=ExecTest [Service] Type=simple ExecStart=/home/snowm/src/exectest/exectest User=snowm KillMode=process [Install] WantedBy=multi-user.target
Durch das Festlegen von KillMode=process weisen Sie systemd an, dies zu tun Beenden Sie beim Beenden des Dienstes nur den Hauptprozess. Dadurch können untergeordnete Prozesse auch dann weiterlaufen, wenn der übergeordnete Prozess gestoppt wurde.
Bitte beachten Sie, dass dieser Ansatz nur untergeordnete Prozesse betrifft, die während der Ausführung des Hauptprozesses erstellt werden. Zuvor erstellte Prozesse werden dennoch beendet, wenn der Hauptprozess endet.
Das obige ist der detaillierte Inhalt vonWie kann ich untergeordnete Prozesse am Laufen halten, nachdem ein Systemd-Dienst beendet wurde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!