Prozesse in Red Hat Enterprise Linux überwachen

Red Hat Enterprise LinuxRed Hat Enterprise LinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Labor erhalten Sie praktische Erfahrung in der Überwachung und Verwaltung von Linux-Prozessen, eine grundlegende Fähigkeit für jeden Systemadministrator oder Entwickler. Sie lernen, Prozesszustände und -lebenszyklen mithilfe von ps und top zu verstehen, Hintergrund- und Vordergrundjobs zu steuern und Prozesse effektiv mit kill, killall und pkill zu beenden. Darüber hinaus werden Sie die Überwachung der Systemlast und der CPU-Auslastung mit uptime und lscpu erkunden und die Prozessaktivität detailliert mit top analysieren. Dieses Labor wird Sie mit den essentiellen Werkzeugen und Kenntnissen ausstatten, um Prozesse effizient zu verwalten und die Systemgesundheit unter RHEL zu gewährleisten.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 100% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Prozesszustände und -lebenszyklen mit ps und top verstehen

In diesem Schritt lernen Sie die Prozesszustände und ihren Lebenszyklus unter Linux kennen. Das Verständnis der Prozesszustände ist entscheidend für die effektive Überwachung und Verwaltung von Systemressourcen. Sie werden die Befehle ps und top verwenden, um Prozesse und deren Zustände zu beobachten.

Jeder Prozess in Linux hat einen Zustand, der seine aktuelle Aktivität beschreibt. Diese Zustände werden vom Kernel definiert und geben an, ob ein Prozess läuft, schläft, angehalten ist oder sich in anderen Zuständen befindet.

Beginnen wir mit der Untersuchung der Prozesszustände mithilfe des Befehls ps. Der Befehl ps liefert einen Momentaufnahme der aktuellen Prozesse.

Öffnen Sie zunächst Ihr Terminal. Sie können dies tun, indem Sie auf das Terminal-Symbol auf dem Desktop klicken oder durch Drücken von Strg+Alt+T. Ihr aktuelles Arbeitsverzeichnis ist ~/project.

Um alle auf Ihrem System laufenden Prozesse anzuzeigen, einschließlich derer ohne Steuerterminal, verwenden Sie den Befehl ps aux. Die Option aux zeigt Prozesse aller Benutzer (a), Prozesse ohne Steuerterminal (x) und ein benutzerorientiertes Format (u) an.

ps aux

Sie sehen eine lange Liste von Prozessen. Achten Sie auf die Spalte STAT, die den Zustand jedes Prozesses anzeigt. Häufige Zustände, die Sie beobachten könnten, sind:

  • R: Laufend oder ausführbar (auf der CPU oder wartet auf Ausführung)
  • S: Unterbrechbarer Schlaf (wartet auf das Abschluss eines Ereignisses)
  • D: Ununterbrechbarer Schlaf (wartet auf E/A, kann nicht unterbrochen werden)
  • T: Angehalten (durch ein Signal angehalten)
  • Z: Zombie (Prozess beendet, aber der Elternprozess hat seinen Beendigungsstatus noch nicht eingesammelt)
BENUTZER   PID %CPU %MEM    VSZ   RSS TTY      STAT START   ZEIT BEREITSTELLUNG
root       1  0.0  0.2 171820 16140 ?        Ss   HH:MM   0:01 /usr/lib/systemd/systemd ...
root       2  0.0  0.0      0     0 ?        S    HH:MM   0:00 [kthreadd]
labex     3448  0.0  0.2 266904  3836 pts/0    R+   HH:MM   0:00 ps aux
...Ausgabe ausgelassen...

Als Nächstes verwenden wir den Befehl ps -ef. Dieser Befehl liefert eine vollständige Liste (f) aller Prozesse (e) und zeigt weitere Details wie die Prozess-ID des Elternprozesses (PPID), die CPU-Auslastung (C), die Startzeit (STIME) und den Befehl (CMD) an.

ps -ef

Diese Ausgabe wird häufig verwendet, um die Eltern-Kind-Beziehungen zwischen Prozessen zu sehen, obwohl sie keine explizite Baumstruktur anzeigt.

UID        PID  PPID  C STIME TTY          ZEIT CMD
root       1       0  0 HH:MM ?        00:00:01 /usr/lib/systemd/systemd ...
root       2       0  0 HH:MM ?        00:00:00 [kthreadd]
root       3       2  0 HH:MM ?        00:00:00 [rcu_gp]
...Ausgabe ausgelassen...

Um die Prozesshierarchie zu visualisieren, können Sie die Option ps --forest verwenden. Dadurch werden die Prozesse in einem Baumformat angezeigt, was es einfacher macht, zu verstehen, welche Prozesse andere Prozesse gestartet haben.

ps --forest

Dieser Befehl ist besonders nützlich für die Fehlersuche und das Verständnis der Struktur verschiedener Dienste und Anwendungen auf Ihrem System.

  PID TTY          ZEIT CMD
 2768 pts/0    00:00:00 bash
 5947 pts/0    00:00:00  \_ sleep 10000
 6377 pts/0    00:00:00  \_ ps --forest
...Ausgabe ausgelassen...

Nun untersuchen wir den Befehl top, der eine dynamische Echtzeitansicht eines laufenden Systems bietet. Er zeigt eine Zusammenfassung der Systeminformationen und eine Liste der Prozesse oder Threads an, die derzeit vom Linux-Kernel verwaltet werden.

Führen Sie den Befehl top aus:

top

Sie sehen eine interaktive Anzeige. Der obere Abschnitt enthält Systemzusammenfassungsinformationen, einschließlich Betriebszeit, durchschnittliche Last, Aufgabenübersicht, CPU-Statistiken und Speichernutzung. Der untere Abschnitt listet einzelne Prozesse auf, standardmäßig nach CPU-Auslastung sortiert.

In der Ausgabe von top beobachten Sie die Spalte S für Prozesszustände, ähnlich wie bei ps. Sie können auch %CPU (CPU-Auslastungsprozentsatz) und %MEM (Speichernutzungsprozentsatz) für jeden Prozess sehen.

top - HH:MM:SS  System läuft seit DD min,  X Benutzer,  durchschnittliche Last: X.XX, X.XX, X.XX
Aufgaben: XXX gesamt,   X laufend, XXX schlafend,   X angehalten,   X Zombie
%CPU(s):  X.X us,  X.X sy,  X.X ni, XX.X id,  X.X wa,  X.X hi,  X.X si,  X.X st
MiB Speicher:   XXXX.X gesamt,   XXXX.X frei,    XXX.X verwendet,    XXX.X buff/cache
MiB Swap:   XXXX.X gesamt,   XXXX.X frei,      X.X verwendet.   XXXX.X verfügbarer Speicher

PID BENUTZER  PR  NI    VIRT    RES    SHR S  %CPU  %MEM     ZEIT+ BEREITSTELLUNG
XXXX labex     20   0  XXXXXX   XXXX   XXXX R   X.X   X.X   0:00.0X top
...Ausgabe ausgelassen...

Während top ausgeführt wird, können Sie q drücken, um den Befehl zu beenden und zum Terminal-Eingabeaufforderer zurückzukehren.

Das Verständnis dieser Befehle und der von ihnen bereitgestellten Informationen ist grundlegend für die Überwachung und Fehlerbehebung von Prozessen in einem Linux-System.

Hintergrund- und Vordergrundjobs steuern

In diesem Schritt lernen Sie, wie Sie Jobs im Hintergrund und Vordergrund innerhalb Ihrer Shell-Sitzung verwalten. Dies ist eine grundlegende Fähigkeit für die effiziente Verwendung der Kommandozeile, die es Ihnen ermöglicht, lang laufende Aufgaben auszuführen, ohne Ihr Terminal zu blockieren.

Ein "Job" im Kontext einer Shell bezieht sich auf einen Befehl oder eine Befehlsfolge, die die Shell verwaltet. Sie können Jobs im Hintergrund ausführen, in den Vordergrund holen oder anhalten.

Beginnen wir mit der Ausführung eines einfachen Befehls im Hintergrund. Wir verwenden den Befehl sleep, der einfach eine bestimmte Zeit wartet.

Um sleep 10000 (das 10000 Sekunden wartet) im Hintergrund auszuführen, fügen Sie ein kaufmännisches Und (&) an den Befehl an:

sleep 10000 &

Wenn Sie die Eingabetaste drücken, kehrt die Shell sofort zur Eingabeaufforderung zurück, und der Befehl sleep wird im Hintergrund ausgeführt. Sie sehen eine Ausgabe ähnlich dieser, die die Jobnummer und die Prozess-ID (PID) anzeigt:

[1] 5947

[1] zeigt an, dass dies der Job Nummer 1 in Ihrer aktuellen Shell-Sitzung ist, und 5947 ist die PID des sleep-Prozesses.

Um eine Liste aller derzeit von Ihrer Shell verwalteten Jobs anzuzeigen, verwenden Sie den Befehl jobs:

jobs

Sie sollten den Befehl sleep als laufenden Hintergrundjob sehen:

[1]+ Running    sleep 10000 &

Das + neben [1] zeigt an, dass dies der aktuelle Job ist (der standardmäßig bearbeitet würde, wenn Sie keine Jobnummer angeben).

Nun holen wir diesen Hintergrundjob in den Vordergrund. Das bedeutet, dass der Job wieder die Kontrolle über Ihr Terminal übernimmt. Verwenden Sie den Befehl fg gefolgt von der Jobnummer (vorangestellt mit %):

fg %1

Der Befehl sleep 10000 befindet sich nun im Vordergrund. Ihr Terminal wird von diesem Befehl belegt, und Sie erhalten keine Eingabeaufforderung, bis er abgeschlossen oder angehalten wird.

sleep 10000

Während ein Befehl im Vordergrund ausgeführt wird, können Sie ihn in den Hintergrund verschieben und anhalten, indem Sie Strg+Z drücken. Dadurch wird ein SIGTSTP-Signal an den Prozess gesendet.

Drücken Sie jetzt Strg+Z:

^Z

Sie sehen eine Ausgabe, die anzeigt, dass der Job angehalten und in den Hintergrund verschoben wurde:

[1]+  Stopped                 sleep 10000

Wenn Sie nun erneut jobs ausführen, sehen Sie, dass der Befehl sleep sich im Zustand Stopped befindet:

jobs
[1]+ Stopped                 sleep 10000

Um einen angehaltenen Hintergrundjob fortzusetzen, können Sie den Befehl bg gefolgt von der Jobnummer verwenden. Dadurch wird der Job im Hintergrund erneut gestartet.

bg %1

Der Job wird nun wieder im Hintergrund ausgeführt:

[1]+ sleep 10000 &

Abschließend bereinigen wir den Hintergrundjob. Sie können einen Hintergrundjob beenden, indem Sie den Befehl kill mit seiner PID verwenden oder ihn in den Vordergrund holen und dann beenden (z. B. mit Strg+C). Lassen Sie uns ihn jetzt in den Vordergrund holen und beenden.

fg %1

Jetzt, da sleep 10000 im Vordergrund ist, drücken Sie Strg+C, um ihn zu beenden. Dadurch wird ein SIGINT-Signal an den Prozess gesendet.

^C

Sie sehen eine Meldung, die anzeigt, dass der Job beendet wurde:

[1]+  Terminated              sleep 10000

Wenn Sie erneut jobs ausführen, sollten keine Jobs mehr aufgeführt werden:

jobs
(keine Ausgabe)

Dies demonstriert den grundlegenden Arbeitsablauf der Verwaltung von Jobs im Hintergrund und Vordergrund, der für die Multitasking-Fähigkeit im Terminal unerlässlich ist.

Prozesse beenden mit kill, killall und pkill

In diesem Schritt lernen Sie, wie Sie Prozesse mit den Befehlen kill, killall und pkill beenden. Diese Befehle sind unerlässlich für die Verwaltung von Systemressourcen und das Stoppen fehlerhafter Anwendungen.

Prozesse unter Linux reagieren auf Signale. Ein Signal ist eine Softwareunterbrechung, die an einen Prozess gesendet wird. Verschiedene Signale haben unterschiedliche Bedeutungen, wie z. B. das Beenden eines Prozesses, das Anhalten oder das Neuladen der Konfiguration.

Zunächst verstehen wir einige grundlegende Prozessverwaltungssignale:

  • SIGTERM (15): Das Standardsignal, das von kill gesendet wird. Es ist eine "freundliche" Anfrage zum Beenden. Der Prozess kann dieses Signal abfangen, die Bereinigung durchführen und dann beenden.
  • SIGKILL (9): Ein "unblockbares" Signal, das eine sofortige Beendigung erzwingt. Der Prozess kann dieses Signal nicht ignorieren oder behandeln. Verwenden Sie es nur als letzten Ausweg.
  • SIGHUP (1): Wird häufig verwendet, um einem Prozess mitzuteilen, dass er seine Konfigurationsdateien neu laden soll, ohne neu zu starten.
  • SIGINT (2): Wird durch Drücken von Strg+C gesendet und wird typischerweise verwendet, um einen Vordergrundprozess zu unterbrechen.
  • SIGSTOP (19): Hält einen Prozess an. Es kann nicht blockiert oder behandelt werden.
  • SIGCONT (18): Setzt einen angehaltenen Prozess fort.

Sie können alle verfügbaren Signale und ihre Nummern mit kill -l auflisten:

kill -l

Sie sehen eine Liste der Signale wie diese:

 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
...Ausgabe ausgelassen...

Verwendung von kill

Der Befehl kill sendet ein angegebenes Signal an einen Prozess, der durch seine Prozess-ID (PID) identifiziert wird.

Erstellen wir einige Hintergrundprozesse, um deren Beendigung zu üben. Wir verwenden wieder sleep-Befehle.

sleep 300 &
sleep 301 &
sleep 302 &

Nun verwenden Sie jobs, um deren Jobnummern und PIDs anzuzeigen:

jobs
[1] 1234
[2] 1235
[3] 1236

(Hinweis: Ihre PIDs werden unterschiedlich sein.)

Lassen Sie uns die PID des ersten sleep-Prozesses finden. Sie können ps aux | grep sleep verwenden und nach der PID suchen, die mit sleep 300 verbunden ist.

ps aux | grep sleep

Sie sehen eine Ausgabe ähnlich dieser. Identifizieren Sie die PID für sleep 300. Wenn die PID beispielsweise 1234 ist:

labex       1234  0.0  0.0   2200   680 pts/0    S    HH:MM   0:00 sleep 300
labex       1235  0.0  0.0   2200   680 pts/0    S    HH:MM   0:00 sleep 301
labex       1236  0.0  0.0   2200   680 pts/0    S    HH:MM   0:00 sleep 302
labex       1237  0.0  0.0   6000  1000 pts/0    S+   HH:MM   0:00 grep sleep

Um sleep 300 mit dem Standardsignal SIGTERM zu beenden, verwenden Sie kill gefolgt von seiner PID. Ersetzen Sie 1234 durch die tatsächlich gefundene PID:

kill 1234

Sie sehen möglicherweise eine Meldung wie [1]+ Terminated sleep 300. Überprüfen Sie, ob er verschwunden ist, mit jobs oder ps aux | grep sleep:

jobs
[2]- Running    sleep 301 &
[3]+ Running    sleep 302 &

Nun beenden wir sleep 301 gewaltsam mit SIGKILL. Finden Sie seine PID (z. B. 1235) und verwenden Sie kill -9 oder kill -SIGKILL:

kill -9 1235

Sie sehen wahrscheinlich [2]- Killed sleep 301. Überprüfen Sie erneut:

jobs
[3]+ Running    sleep 302 &

(...Fortsetzung der Anleitung...)

Systemlast und CPU-Auslastung mit uptime und lscpu überwachen

In diesem Schritt lernen Sie, wie Sie die durchschnittliche Systemlast und die CPU-Auslastung mit den Befehlen uptime und lscpu überwachen. Das Verständnis dieser Metriken ist entscheidend für die Beurteilung der Systemleistung und die Identifizierung potenzieller Engpässe.

Verständnis der durchschnittlichen Systemlast mit uptime

Der Befehl uptime bietet einen schnellen Überblick darüber, wie lange Ihr System läuft, wie viele Benutzer angemeldet sind und, was am wichtigsten ist, die durchschnittliche Systemlast. Die durchschnittliche Systemlast gibt die durchschnittliche Anzahl von Prozessen an, die sich entweder im ausführbaren oder im unterbrechungsfreien Zustand über einen bestimmten Zeitraum befinden.

Führen Sie den Befehl uptime aus:

uptime

Sie erhalten eine Ausgabe ähnlich dieser:

HH:MM:SS up DD min,  X users,  load average: X.XX, X.XX, X.XX

Lassen Sie uns die Ausgabe aufschlüsseln:

  • HH:MM:SS: Die aktuelle Uhrzeit.
  • up DD min: Wie lange das System läuft (Systemlaufzeit).
  • X users: Die Anzahl der aktuell angemeldeten Benutzer.
  • load average: X.XX, X.XX, X.XX: Diese drei Zahlen stellen die durchschnittliche Systemlast der letzten 1, 5 und 15 Minuten dar.

Eine durchschnittliche Systemlast von 1.00 auf einer Single-Core-CPU bedeutet, dass die CPU vollständig ausgelastet ist. Auf einer Multi-Core-CPU bedeutet eine durchschnittliche Systemlast gleich der Anzahl der CPU-Kerne, dass das System vollständig ausgelastet ist. Beispielsweise zeigt auf einer 4-Core-CPU eine durchschnittliche Systemlast von 4.00 eine vollständige Auslastung an. Wenn die durchschnittliche Systemlast die Anzahl der CPU-Kerne dauerhaft übersteigt, deutet dies darauf hin, dass Ihr System überlastet ist und Prozesse auf CPU-Zeit warten.

Bestimmen der CPU-Kerne mit lscpu

Um die durchschnittliche Systemlast richtig zu interpretieren, müssen Sie wissen, wie viele logische CPU-Kerne Ihr System hat. Der Befehl lscpu liefert detaillierte Informationen über die CPU-Architektur.

Führen Sie den Befehl lscpu aus:

lscpu

Sie erhalten eine umfangreiche Ausgabe. Suchen Sie nach der Zeile CPU(s):, die Ihnen die Gesamtzahl der verfügbaren logischen CPUs anzeigt. Auch Core(s) per socket: und Socket(s): können Ihnen helfen, die physikalische Anordnung zu verstehen.

Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  2
Core(s) per socket:  2
Socket(s):           1
NUMA node(s):        1
...Ausgabe ausgelassen...

Im obigen Beispiel zeigt CPU(s): 4 an, dass dieses System 4 logische CPU-Kerne hat.

Interpretation der durchschnittlichen Systemlast und der CPU-Kerne

Kombinieren wir die Informationen von uptime und lscpu. Angenommen, Ihre uptime-Ausgabe zeigt eine durchschnittliche Systemlast von 2.92, 4.48, 5.20 und lscpu zeigt CPU(s): 4.

Um die pro-CPU-Last zu erhalten, dividieren Sie jede Lastzahl durch die Gesamtzahl der logischen CPUs:

  • Letzte 1 Minute: 2.92 / 4 = 0.73
  • Letzte 5 Minuten: 4.48 / 4 = 1.12
  • Letzte 15 Minuten: 5.20 / 4 = 1.30

Basierend auf diesen Berechnungen:

  • In den letzten 1 Minute waren die CPUs zu etwa 73 % ihrer Kapazität ausgelastet.
  • In den letzten 5 Minuten war das System um etwa 12 % überlastet (1.12 - 1.00 = 0.12). Dies bedeutet, dass Prozesse auf CPU-Zeit warteten.
  • In den letzten 15 Minuten war das System um etwa 30 % überlastet (1.30 - 1.00 = 0.30).

Diese Analyse deutet darauf hin, dass das System in den letzten 5 und 15 Minuten einer erheblichen Belastung ausgesetzt war, die Belastung aber in der letzten Minute abgenommen hat. Diese Art der Trendanalyse ist entscheidend für das Verständnis des Systemzustands.

Diese beiden Befehle, uptime und lscpu, sind einfache, aber leistungsstarke Werkzeuge, um den allgemeinen Zustand und die Leistung Ihres Linux-Systems schnell zu beurteilen.

Prozessaktivität mit top analysieren

In diesem Schritt werden Sie tiefer in die Verwendung des Befehls top zur Analyse der Prozessaktivität eintauchen. Während top einen Echtzeitüberblick bietet, bietet es auch leistungsstarke interaktive Funktionen zum Sortieren, Filtern und Verwalten von Prozessen.

Erinnern Sie sich aus einem vorherigen Schritt, dass top eine dynamische Ansicht Ihres Systems bereitstellt. Starten wir top erneut:

top

Sie sehen die bekannte top-Schnittstelle. Der obere Abschnitt bietet systemweite Statistiken, und der untere Abschnitt listet die Prozesse auf.

Verständnis der Spalten in top

Sehen wir uns die Standardspalten in der Prozessliste an:

  • PID: Prozess-ID.
  • USER: Der Besitzer des Prozesses.
  • PR: Priorität des Prozesses.
  • NI: Nice-Wert des Prozesses (niedrigerer Nice-Wert bedeutet höhere Priorität).
  • VIRT: Vom Prozess verwendeter virtueller Speicher.
  • RES: Vom Prozess verwendeter Hauptspeicher (physikalischer RAM).
  • SHR: Vom Prozess verwendeter gemeinsam genutzter Speicher.
  • S: Prozesszustand (R=Ausgeführt, S=Schlafend, D=Ununterbrechbarer Schlaf, T=Angehalten, Z=Zombie).
  • %CPU: Prozentsatz der CPU-Auslastung seit dem letzten Update.
  • %MEM: Prozentsatz der Speichernutzung (RES / Gesamt-Hauptspeicher).
  • TIME+: Gesamt-CPU-Zeit, die der Prozess seit seinem Start verwendet hat.
  • COMMAND: Der Befehlsname, der den Prozess gestartet hat.

Interaktive Tasten in top

top ist sehr interaktiv. Sie können verschiedene Tasten drücken, um die Anzeige zu ändern und mit Prozessen zu interagieren.

  1. Prozesse sortieren:

    • Drücken Sie Umschalt+P (Großbuchstabe P), um Prozesse nach CPU-Auslastung (%CPU) zu sortieren, was oft die Standardeinstellung ist.
    • Drücken Sie Umschalt+M (Großbuchstabe M), um Prozesse nach Speichernutzung (%MEM) zu sortieren.
    • Drücken Sie Umschalt+T (Großbuchstabe T), um Prozesse nach TIME+ zu sortieren.

    Versuchen Sie jetzt, Umschalt+M zu drücken, um nach Speichernutzung zu sortieren. Beobachten Sie, wie sich die Prozessliste neu ordnet. Drücken Sie dann Umschalt+P, um zur Sortierung nach CPU zurückzukehren.

  2. Filtern nach Benutzer:

    • Drücken Sie u (kleingeschriebenes u). top fordert Sie nach einem Benutzernamen. Geben Sie labex ein und drücken Sie die Eingabetaste.
    • Jetzt zeigt top nur Prozesse an, die dem Benutzer labex gehören. Dies ist sehr nützlich, um sich auf Ihre eigenen Prozesse zu konzentrieren.
    • Um die Filterung aufzuheben und alle Benutzer wieder anzuzeigen, drücken Sie u und drücken Sie dann die Eingabetaste, ohne einen Benutzernamen einzugeben.
  3. Ändern des Aktualisierungsintervalls:

    • Standardmäßig aktualisiert top alle 3 Sekunden. Sie können dieses Intervall ändern.
    • Drücken Sie s (kleingeschriebenes s). top fordert Sie nach einer Verzögerungszeit. Geben Sie 1 (für 1 Sekunde) ein und drücken Sie die Eingabetaste.
    • Beobachten Sie, wie sich die Anzeige häufiger aktualisiert.
    • Sie können sie wieder auf 3 Sekunden ändern, indem Sie erneut s drücken und 3 eingeben.
  4. Prozess beenden:

    • Sie können einen Prozess direkt aus top beenden.
    • Lassen Sie uns zunächst einen sleep-Prozess im Hintergrund in einem neuen Terminalfenster oder -tab starten, oder indem Sie in Ihrem aktuellen Terminal Strg+Z drücken, dann bg um top in den Hintergrund zu verschieben, dann sleep 600 & ausführen, dann fg um top wieder in den Vordergrund zu holen.
    • Alternativ können Sie einen neuen Terminal-Tab öffnen (z. B. Strg+Umschalt+T in vielen Terminals) und dort sleep 600 & ausführen.
    • Sobald Sie einen sleep-Prozess ausführen, kehren Sie zu Ihrem top-Terminal zurück.
    • Drücken Sie k (kleingeschriebenes k). top fordert Sie nach der PID des Prozesses, den Sie beenden möchten.
    • Finden Sie die PID Ihres sleep 600-Prozesses in der top-Liste. Geben Sie diese PID ein und drücken Sie die Eingabetaste.
    • top fragt dann nach dem zu sendenden Signal. Die Standardeinstellung ist 15 (SIGTERM). Drücken Sie die Eingabetaste, um SIGTERM zu senden.
    • Der sleep-Prozess sollte von der Liste verschwinden. Wenn nicht, können Sie versuchen, erneut k zu drücken und Signal 9 (SIGKILL) zu senden.
  5. Prozesspriorität ändern:

    • Durch Ändern der Priorität eines Prozesses wird die Priorität geändert. Ein niedrigerer Nice-Wert bedeutet eine höhere Priorität.
    • Drücken Sie r (kleingeschriebenes r). top fordert Sie nach einer PID und dann nach einem Nice-Wert (z. B. -10 für höhere Priorität, 10 für niedrigere Priorität).
    • Dies ist eine erweiterte Funktion zur Verwaltung von Systemressourcen. Für dieses Labor drücken Sie einfach r, dann zweimal die Eingabetaste, um die Operation abzubrechen, ohne etwas zu ändern.
  6. Beenden von top:

    • Wenn Sie fertig sind, drücken Sie q (kleingeschriebenes q), um top zu beenden und zu Ihrer Terminalaufforderung zurückzukehren.

top ist ein unverzichtbares Werkzeug für Systemadministratoren und Benutzer gleichermaßen. Die Beherrschung seiner interaktiven Funktionen ermöglicht eine schnelle und effektive Diagnose von Systemleistungsproblemen und Prozessverwaltung.

Zusammenfassung

In diesem Labor haben Sie grundlegende Konzepte der Linux-Prozessverwaltung kennengelernt. Sie begannen mit dem Verständnis von Prozesszuständen und ihrem Lebenszyklus mithilfe der Befehle ps und top, wobei Sie beobachteten, wie Prozesse zwischen Zuständen wie Ausgeführt (R), unterbrechbarer Schlaf (S) und Angehalten (T) wechseln. Sie übten die Identifizierung gängiger Prozesszustände und die Interpretation der Ausgabe von ps aux und ps -ef, um Einblicke in die Systemprozesse zu gewinnen.

Darüber hinaus haben Sie Methoden zur Steuerung von Hintergrund- und Vordergrundjobs erkundet, was für eine effiziente Terminalnutzung entscheidend ist. Sie haben auch die Beherrschung des Beendens von Prozessen mit verschiedenen Befehlen wie kill, killall und pkill erlangt und deren unterschiedliche Anwendungen für einen ordnungsgemäßen oder zwangsweisen Abbruch verstanden. Schließlich haben Sie gelernt, die Systemlast und die CPU-Auslastung mit uptime und lscpu zu überwachen und detaillierte Prozessaktivitäten mit top zu analysieren, um einen umfassenden Überblick über die Systemleistung und die Ressourcenauslastung zu erhalten.