[PYTHON] [Unix] Was ist der Zombie-Prozess / Orphan-Prozess?

Für meine eigenen Unterlagen

Umgebung

Sakura Mietserver Flask 1.1.1 Werkzeug 0.16.0

Was du machen willst

Wenn es eine Anfrage vom Client gibt

Frage

Wenn meine Eltern zuerst sterben, ist es ein Zombie. Es ist eine Waise, aber es scheint im Weg zu sein? Doppelgabel? Müssen Sie so etwas tun? Es gab eine Beschreibung wie, also habe ich sie tatsächlich nachgeschlagen.

Ergebnis

Was ist ein Zombie-Prozess?

Ein untergeordneter Prozess, der die Verarbeitung abgeschlossen hat und darauf wartet, dass der übergeordnete Prozess wartet. Wenn der untergeordnete Prozess gegabelt wird, wird der untergeordnete Prozess zur Prozesstabelle hinzugefügt und der untergeordnete Prozess wird mit der Wartezeit des übergeordneten Prozesses aus der Prozesstabelle gelöscht. Mit anderen Worten, ein Prozess, der die Verarbeitung abgeschlossen hat, aber nicht vom übergeordneten Element durch Warten übernommen wurde.

Was ist der Orphan-Prozess?

Ein untergeordneter Prozess, bei dem der übergeordnete Prozess zuerst beendet wird und nicht mehr vom übergeordneten Warten übernommen wird. Ein untergeordneter Prozess, dessen übergeordneter Prozess zuerst gestorben ist, wird dem übergeordneten Prozess erneut übergeordnet, und der init-Prozess wird danach zum übergeordneten Prozess. Der Init-Prozess wartet aktiv und beendet den Orphan-Prozess.

Zusammenfassung

Mit anderen Worten, wenn der übergeordnete Prozess ein residenter Prozess ist, werden untergeordnete Prozesse zu verschiedenen Zeitpunkten erstellt, und Sie wissen nicht, wann Sie wait aufrufen sollen. Es wird eine große Anzahl von Zombie-Prozessen erstellt, die Druck auf das System ausüben.

Mit der Funktion, die Sie dieses Mal realisieren möchten, stirbt der übergeordnete Prozess schnell ab, sodass der untergeordnete Prozess ordnungsgemäß von init übernommen wird und endet. Führen Sie also keine doppelte Verzweigung durch.

Referenzseite

Das Bild von Begriffen ist leicht zu erfassen

Orphan Process Zombie-Prozess

Einfach als Zusammenfassung zu verstehen

Yahoo Weisheitstasche

Wann und warum brauchen Sie eine Doppelgabel?

HATENA Blog: Double Fork Process Daemonization und Implementierung des automatischen Server-Reloads beim Ändern von Dateien (Python)

Recommended Posts

[Unix] Was ist der Zombie-Prozess / Orphan-Prozess?
Was ist der Unterschied zwischen Unix und Linux?
Was ist die Aktivierungsfunktion?
Was ist die Schnittstelle für ...
Was ist die Rückruffunktion?
[Python] Was ist @? (Über Dekorateure)
[Python] Was ist der sortierte Schlüssel?
Was ist das X Window System?
Wofür ist der Python-Unterstrich (_)?
Was ist Clivoa, ein Framework für die ETL-Verarbeitung?
Was ist die Ursache für den folgenden Fehler?
Wo ist der Python-Instanziierungsprozess geschrieben?
Was ist "Mahjong" in der Python-Bibliothek? ??
Ich sehe, ich werde den UNIX-Prozess lesen
[Maschinelles Lernen] Was ist LP-Norm?
Was ist ein Namespace?
Was ist copy.copy ()
Was ist der Unterschied zwischen "pip" und "conda"?
Was ist Django? .. ..
Was ist POSIX?
Was ist Linux?
Was ist klass?
Was ist SALOME?
Was ist Linux?
Was ist Python?
Was ist Hyperopt?
Es ist ein Mac. Was ist der Linux-Befehl Linux?
(Linux-Anfänger) Was ist das Zauberwort aux?
Was ist Linux?
Was ist Pyvenv?
Was ist __call__?
Was ist Linux?
Was ist Python?
Was ist der Unterschied zwischen usleep, nanosleep und clock_nanosleep?
Was ist das Domain-Attribut, das in Plotlys Layout geschrieben ist?
Überprüfen Sie, ob es sich um Unix in der Skriptsprache handelt
Was ist ein empfohlener Motor? Zusammenfassung der Typen
Was ist eine Distribution?
Was ist Piotroskis F-Score?
Was ist Raspberry Pi?
[Python] Was ist Pipeline ...
Was ist das Calmar-Verhältnis?
Was ist ein Terminal?
[PyTorch Tutorial ①] Was ist PyTorch?
Was ist Hyperparameter-Tuning?
Was ist ein Hacker?
Was ist JSON? .. [Hinweis]
Wofür ist Linux?
Was ist ein Zeiger?
Was ist Ensemble-Lernen?
Was ist TCP / IP?
Was ist Pythons __init__.py?
Was ist ein Iterator?
Was ist UNIT-V Linux?
[Python] Was ist virtualenv?
Was ist maschinelles Lernen?
Was ist die Standard-TLS-Version des Python-Anforderungsmoduls?
Nach dem Löschen von Java-Prozessprotokollen werden keine Protokolle mehr ausgegeben