Heim > Backend-Entwicklung > Golang > Wie kann ich untergeordnete Prozesse am Laufen halten, nachdem der vom System verwaltete übergeordnete Prozess beendet wurde?

Wie kann ich untergeordnete Prozesse am Laufen halten, nachdem der vom System verwaltete übergeordnete Prozess beendet wurde?

Linda Hamilton
Freigeben: 2024-12-27 19:40:14
Original
214 Leute haben es durchsucht

How Can I Keep Child Processes Running After the Systemd-Managed Parent Process Exits?

Kann den untergeordneten Prozess nicht trennen, wenn der Hauptprozess von Systemd gestartet wird

Wenn ein Hauptprozess ausgeführt wird, der untergeordnete Prozesse erzeugt, ist es wünschenswert, dies zu tun Sorgen Sie dafür, dass die untergeordneten Prozesse auch dann überleben, wenn der Hauptprozess neu startet oder stirbt. Dieses Verhalten funktioniert wie erwartet, wenn der Hauptprozess von einem Terminal aus ausgeführt wird, wie im bereitgestellten Beispiel mit dem Programm exectest gezeigt.

Wenn der Hauptprozess jedoch über Systemd mithilfe einer Servicedatei gestartet wird, tun dies die untergeordneten Prozesse nicht über die Lebensdauer des Hauptprozesses hinaus überleben. Dies geschieht, weil Systemd Prozesse in einer Kontrollgruppe verwaltet und standardmäßig alle untergeordneten Prozesse bereinigt, wenn der übergeordnete Prozess beendet wird.

Um dieses Problem zu beheben, kann die KillMode-Einstellung in der Systemd-Dienstdefinition geändert werden. Standardmäßig ist KillMode auf „control-group“ eingestellt. Wenn Sie ihn jedoch in „process“ ändern, wird sichergestellt, dass nur der Hauptprozess beendet wird, sodass seine untergeordneten Prozesse weiter ausgeführt werden können.

Die aktualisierte Dienstdatei würde die folgende Zeile enthalten:

KillMode=process
Nach dem Login kopieren

Mit dieser Einstellung überleben die untergeordneten Prozesse von exectest auch dann, wenn der Hauptprozess beendet oder über Systemd neu gestartet wird.

Das obige ist der detaillierte Inhalt vonWie kann ich untergeordnete Prozesse am Laufen halten, nachdem der vom System verwaltete übergeordnete Prozess beendet wurde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage