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

So erstellen Sie einen Dummy-Zombie-Prozess in Ubuntu 18.04 LTS

Als Softwaretester müssen wir manchmal wissen, wie ein Zombie-Prozess auf unserem System aussieht. Wir können verschiedene Tests damit durchführen, wenn wir genau wissen, welches Programm und welche Prozess-ID mit diesem Zombie-Prozess verknüpft ist.

Was ist ein Zombie-Prozess?

Ein Zombie oder ein nicht mehr existierender Prozess in Linux ist ein Prozess, der abgeschlossen wurde, dessen Eintrag jedoch aufgrund fehlender Übereinstimmung zwischen den übergeordneten und untergeordneten Prozessen immer noch in der Prozesstabelle verbleibt. Normalerweise überwacht ein übergeordneter Prozess den Status seiner untergeordneten Prozesse durch die Funktion wait(). Wenn der Kindprozess beendet ist, signalisiert die Wait-Funktion dem Elternprozess, den Prozess vollständig aus dem Speicher zu verlassen. Wenn der Elternprozess die Wait-Funktion jedoch nicht für einen seiner Kinder aufruft, bleibt der Kindprozess im System als toter oder Zombie-Prozess am Leben. Diese Zombie-Prozesse können sich in großer Zahl auf Ihrem System ansammeln und dessen Leistung beeinträchtigen.

Wenn Sie den top-Befehl ausführen und ein Zombie läuft, wird dies in der zweiten Zeile der Ausgabe wie folgt angezeigt:

Wenn auf Ihrem System jedoch kein Zombie-Prozess läuft, können Sie zu Testzwecken einen Dummy erstellen, wie in diesem Artikel beschrieben. Wir führen diesen Prozess auf Ubuntu 18.04 aus.

Erstellen eines Zombie-Prozesses

In diesem Abschnitt schreiben wir ein C-Programm, um einen Zombie-Prozess auf unserem System auszuführen.

Öffnen Sie einen Texteditor und geben Sie den folgenden Code ein:

Code

#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>int main ()
{
pid_t child_pid;child_pid = fork ();
if (child_pid > 0) {
sleep (60);
}
else {
exit (0);
}
return 0;
}

Speichern Sie diese Datei als zombie.c

Der durch diesen Code erstellte Zombie-Prozess wird 60 Sekunden lang ausgeführt. Sie können die Zeitdauer erhöhen, indem Sie eine Zeit (in Sekunden) in der Funktion sleep() angeben.

Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus, um dieses Programm zu kompilieren:

$ cc zombie.c -o zombie

Nun wird eine ausführbare Datei mit dem Namen zombie erstellt.

Bitte beachten Sie, dass Sie den GNU-C-Compiler mit dem folgenden Befehl installieren müssen, falls er noch nicht auf Ihrem System installiert ist:

$ sudo apt-get install build-essential

Führen Sie nun das Zombie-Programm mit dem folgenden Befehl aus:

./zombie

Sie sehen die folgende Ausgabe:

Sie können beim Testen die ID des übergeordneten Prozesses (PPID) und die ID des untergeordneten Prozesses (PID) verwenden; zum Beispiel durch Beenden dieses Zombie-Prozesses durch den Kill-Befehl.

Während dieser Prozess ausgeführt wird, können Sie die Systemleistung in einem anderen Terminalfenster über den obersten Befehl anzeigen. Sie können 1 Zombie-Prozess in der zweiten Zeile der Ausgabe sehen.

Der Befehl ps zeigt nun auch diesen nicht mehr existierenden Prozess und das dafür verantwortliche Zombieprogramm an:

$ ps axo stat,ppid,pid,comm | grep -w defunct

Dieser Befehl gibt Ihnen den Status, die parentID, die Prozess-ID und das Programm, das den Zombie-Prozess ausführt (das Zombie-Programm, das wir in diesem Tutorial ausgeführt haben).

Sie haben jetzt gelernt, wie Sie einen einfachen Dummy-Zombie-Prozess erstellen. Dadurch erhalten Sie eine Vorstellung davon, wie es auf Ihrem System aussieht und wie Sie es zu Testzwecken verwenden können.


Ubuntu
  1. So aktualisieren Sie Ubuntu 18.04 LTS auf Ubuntu 20.04 LTS

  2. So erstellen Sie Docker-Images mit einer Docker-Datei unter Ubuntu 16.04 LTS

  3. So aktualisieren Sie Ubuntu 15.10 auf Ubuntu 16.04 LTS

  4. So aktualisieren Sie Ubuntu 14.04 LTS auf Ubuntu 16.04 LTS

  5. Erstellen Sie einen Zombie-Prozess

So aktualisieren Sie Ubuntu 18.04 auf Ubuntu 20.04 LTS

So installieren Sie Htop Viewer unter Ubuntu 22.04 | 20.04 LTS

So installieren Sie Go unter Ubuntu 22.04 LTS

So installieren Sie Go unter Ubuntu 18.04 LTS

So installieren Sie Go unter Ubuntu 20.04 LTS

So töten Sie Zombie-Prozesse in Ubuntu