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

Finden Sie verwaiste Linux-Prozesse heraus

Es ist sehr wichtig, Linux-Prozesse ordnungsgemäß zu beenden, um zu vermeiden, dass Linux ohne Spuren in der Systemprotokolldatei aufhängt. Kurz gesagt, Linux hängt sich ohne Angabe von Gründen im Systemprotokoll auf, wenn der Masterprozess (init, PID 1) durch zu viele verwaiste Prozesse auf einmal überlastet wird.

Allerdings ist es einem normalen Benutzer, der Zugriff auf Ihren Linux-Server hat, möglich, Ihren Linux-Server in einer Minute einfach zu töten!

Wie könnten wir in der Lage sein, einen außer Kontrolle geratenen Prozess oder einen verwaisten Prozess zu erkennen und herauszufinden? Es gibt eine Diskussion über verwaiste Zombie-VS-Prozesse, die verwaisten Prozesse werden wie folgt identifiziert:

systemfremde Prozesse oder Prozesse des Benutzers, die eine PPID (Elternprozess-ID) von 1 (Init-Prozess-ID) haben, über einen Mechanismus, der als Neuzuordnung bekannt ist.

Es gibt nicht viele Prozesse, die dem Init-Prozess gehören. Anscheinend haben die meisten Systemprozesse, die nach dem Hochfahren des Systems ausgeführt werden, die PPID 1.

Kurz nachdem das Linux-System hochgefahren ist, können Sie diesen Befehl ausführen:

ps -elf | head -1; ps -elf | awk '{if ($5 == 1) {print $0}}'

Der Befehl erstellt einen Snapshot aller Prozesse mit PPID 1. Behalten Sie dieses Ergebnis bei. Danach können Sie den Befehl regelmäßig ausführen, um das Ergebnis der Zeit mit einem zuvor erstellten Schnappschuss zu vergleichen. Alle im neuen Snapshot gefundenen Unterschiede könnten möglicherweise verwaiste Prozesse sein.

Beachten Sie, dass die gefundenen Unterschiede nur darauf hindeuten, dass es sich um potenzielle (nicht bestätigte) verwaiste Prozesse im Linux-System handelt. Sie müssen weitere Informationen erhalten, um sie zu bestätigen, bevor Sie diese Prozesse beenden. Zum Beispiel, wie STIME berechnet wird, CPU-Auslastung, Verständnis des Ausführungszwecks usw.

Sobald Sie sie bestätigt haben, sollten Sie nicht zögern, sie so schnell wie möglich mit dem Befehl kill -9 zu beenden, da verwaiste Prozesse mit der Zeit Ihre Linux-Systemressourcen erschöpfen.


Linux
  1. So finden Sie die Liste aller offenen Ports in Linux heraus

  2. Linux – Wie finde ich den Namensraum eines bestimmten Prozesses heraus?

  3. Linux-ps-Befehl

  4. Wie finde ich heraus, welche Prozesse Swap Space in Linux verwenden?

  5. Wie finde ich den Virtualisierungstyp eines Linux-VPS heraus?

Pgrep-Befehl unter Linux

So finden Sie heraus, welche Version des Linux-Kernels auf Ihrem PC läuft

So finden Sie die IP-Adresse unter Linux

So finden Sie heraus, zu welchen Gruppen ein Benutzer in Linux gehört

Finden Sie heraus, welche Prozesse auf einem bestimmten Port in Linux lauschen

Prozesse unter Linux verstehen