Ein Zombie-Prozess ist ein Prozesstyp, der abgeschlossen wurde, dessen Eintrag jedoch aufgrund fehlender Kommunikation zwischen dem untergeordneten und dem übergeordneten Prozess immer noch in der Prozesstabelle verbleibt. Das kleine Programm, das in diesem Tutorial entwickelt wurde, kann für Lernzwecke nützlich sein. Z.B. wenn es um die Erkennung von Zombie-Prozessen unter Linux geht.
In diesem Tutorial werde ich einen Dummy-Zombie-Prozess in Debian 10 erstellen.
Erstellen eines Dummy-Zombie-Prozesses in Debian 10
Öffnen Sie den Notizblock und fügen Sie den folgenden Code ein.
#include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main () { pid_t child_pid;child_pid = fork (); if (child_pid > 0) { sleep (120); } else { exit (0); } return 0; }
Speichern Sie diese Datei als zombie.c . Der mit diesem Code erstellte Zombie-Prozess wird 120 Sekunden lang ausgeführt. Sie können die Zeitdauer (in Sekunden) in der Schlaffunktion anpassen.
Öffnen Sie als Nächstes das Terminal und führen Sie den folgenden Befehl aus, um den obigen Code zu kompilieren.
cc zombie.c -o zombie
Nach diesem Befehl sollte eine ausführbare Zieldatei in Ihrem aktuellen Verzeichnis erstellt worden sein.
Führen Sie die Zombie-Datei aus:
./zombie
Wenn Sie den folgenden Befehl mit grep ausführen, erhalten Sie die Eltern-ID des Zombie-Prozesses.
ps axo stat,ppid,pid,comm | grep -w defunct
So erstellen Sie einen Dummy-Zombie-Prozess in Debian 10. Ich hoffe, Sie haben keine Schwierigkeiten, diesem Tutorial zu folgen.