Schale

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

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, welche Programm- und 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, aber sein Eintrag bleibt aufgrund fehlender Korrespondenz zwischen den übergeordneten und untergeordneten Prozessen noch in der Prozesstabelle. Normalerweise überprüft ein übergeordneter Prozess den Status seiner untergeordneten Prozesse durch die Funktion wait(). Wenn der Child-Prozess beendet ist, signalisiert die Wait-Funktion dem Parent, den Prozess vollständig aus dem Speicher zu verlassen. Wenn das übergeordnete Element jedoch die Wartefunktion für eines seiner untergeordneten Elemente nicht aufruft, bleibt der untergeordnete Prozess im System als toter oder Zombie-Prozess am Leben. Diese Zombie-Prozesse können sich in großer Zahl auf Ihrem System ansammeln und seine Leistung beeinträchtigen.

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

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

Einen Zombie-Prozess erstellen

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

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

Code

#einschließen  #einschließen  #einschließen int main ()  pid_t child_pid; child_pid = fork (); if (child_pid > 0) schlaf (60);  sonst  Ausfahrt (0);  Rückgabe 0; 

Speichern Sie diese Datei als Zombie.c

Der mit diesem 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

Jetzt wird eine ausführbare Datei mit dem Namen Zombie erstellt.

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

$ sudo apt-get install build-essential

Führen Sie nun das Zombie-Programm durch den 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 das Beenden dieses Zombie-Prozesses durch den Kill-Befehl.

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

Der ps-Befehl zeigt nun auch diesen stillgelegten Prozess und das dafür verantwortliche Zombie-Programm an:

$ ps axo stat,ppid,pid,comm | grep -w nicht mehr existierend

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.

Weisen Sie Ihre Maustasten mit der X-Mouse Button Control für verschiedene Software unterschiedlich zu
Vielleicht benötigen Sie ein Tool, mit dem sich die Steuerung Ihrer Maus bei jeder von Ihnen verwendeten Anwendung ändern kann. In diesem Fall können ...
Microsoft Sculpt Touch Wireless-Maus Bewertung
Ich habe vor kurzem gelesen, dass Microsoft Sculpt Touch kabellose Maus und beschloss, sie zu kaufen. Nachdem ich es eine Weile benutzt hatte, beschlo...
AppyMouse On-Screen Trackpad und Mauszeiger für Windows Tablets
Tablet-Benutzer vermissen oft den Mauszeiger, insbesondere wenn sie die Laptops gewohnt sind. Die Touchscreen-Smartphones und -Tablets bieten viele Vo...