GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Der untergeordnete Prozess kann nicht getrennt werden, wenn der Hauptprozess von systemd gestartet wird

Die Lösung besteht darin,

hinzuzufügen
KillMode=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.


Linux
  1. So beschleunigen Sie den Kompilierungsprozess beim Installieren von Paketen von AUR

  2. Warum wird Sigint nicht an den untergeordneten Prozess weitergegeben, wenn er an den übergeordneten Prozess gesendet wird?

  3. Systemd und Process Spawning:Untergeordnete Prozesse werden beendet, wenn der Hauptprozess beendet wird?

  4. Der untergeordnete Prozess empfängt das SIGINT des übergeordneten Prozesses

  5. So erhalten Sie die PID von einem gegabelten untergeordneten Prozess im Shell-Skript

So erhalten Sie einen untergeordneten Prozess aus einem übergeordneten Prozess

Kann ich Linux von einer VHD booten?

Ist es möglich, einen bestimmten Exit-Code zu erzwingen, wenn kill verwendet wird, um einen Prozess zu stoppen?

Wie kann ich Eingaben von der Tastatur des Hosts lesen, wenn ich über SSH verbunden bin?

Kann ich einen Nano-Prozess von einem vorherigen Terminal wiederherstellen?

Wie kann ich ZooKeeper unter Ubuntu stoppen?