Töte die Zombies, die auf deinem Linux leben….

Zombie

Die Prozesse sind laufende Programme. Jede Software kann einen oder mehrere Prozesse starten, die zur Verarbeitung durch die CPU in den Hauptspeicher geladen werden müssen. Manchmal kann ein Prozess in sogenannte LWP- oder Lightweight-Prozesse unterteilt werden, also Threads, Threads, wie auch immer Sie sie nennen möchten. Wenn alle Threads eines Prozesses ausgeführt wurden, wurde der Prozess beendet.

Habe diese Einführung gemacht, sag das Prozesse in Unix-Umgebungen werden durch eine ID identifiziert und können mehrere Zustände haben. Bei dieser ID oder Kennung handelt es sich um eine Nummer, die dem Prozess zugewiesen wird, um ihn nachverfolgen zu können. Sie können die PID eines Prozesses unter anderem mit dem ps-Tool htop leicht ermitteln. Außerdem können Sie Informationen zum Status einsehen.

Die Zustände, in denen sich ein Prozess unter Linux befinden kann, sind:

  • Läuft: Der Prozess läuft.
  • Schlafend: Der Prozess schläft und wartet auf das Eintreten eines Ereignisses, das ihn aufweckt und seine Ausführung fortsetzt.
  • Wird beendet: Der Prozess wurde beendet oder ist tot.
  • Geräte-E/A: E/A-Geräteprozesse, die nicht unterbrochen werden können.
  • Zombie: Wenn ein untergeordneter Prozess vor seinem übergeordneten Prozess beendet wird, werden die Informationen des untergeordneten Prozesses aufbewahrt, bis auch der übergeordnete Prozess beendet wird. Das Kind ist tatsächlich tot oder erledigt, aber es kann nicht zerstört werden, um Ressourcen freizugeben. Es nimmt nicht wirklich CPU-Zeit in Anspruch, aber es nimmt Platz in der Prozesstabelle ein.

Ein Weg Das Senden von Signalen an die Prozesse, damit sie in den einen oder anderen Zustand wechseln, erfolgt über den Kill-Befehl. Wenn Sie den Befehl kill -l verwenden, wird die Liste der Signale angezeigt, die Sie senden können. Am typischsten ist es, ein KILL-Signal an einen Prozess zu senden, um ihn zu beenden. Zum Beispiel:

kill -l

kill -9 <PID>

Das 9- oder SIGKILL-Signal bricht den Prozess, auf den PID zeigt, direkt ab, ohne den Status zu überprüfen. Stattdessen beendet SIGTERM den Prozess nur unter bestimmten Umständen, da es den Status des Prozesses überprüft, an den das Signal gesendet wird, und wenn es nicht sicher ist, wird das Signal ignoriert.

Abgesehen davon verfügen Tools wie ps über eine Spalte, die den STAT oder Status des Prozesses anzeigt. Wenn Sie sich diese Spalte ansehen, erscheint der Anfangsbuchstabe des Staates, in dem sie sich befindet. Zum Beispiel S für „Schlafen“ oder Z für „Zombie“ usw. Kann Überprüfen Sie, ob Sie Zombie-Prozesse haben oder nicht auf Ihrem System mit dem folgenden Befehl:

ps aux | grep 'Z'

In meinem Fall gab es einen mit PID 6393. Und für Töte Zombie-Prozesse, können Sie den folgenden Befehl verwenden:

kill 6393


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   John Rubio sagte

    Hallo, ich führe diesen Prozess für einen Prozess aus, aber ich gebe ihm KILL und überprüfe ihn erneut und folge diesem Prozess