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.
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 mit kill, killall und pkill beenden
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
killgesendet 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+Cgesendet 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äten 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.
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 nachTIME+zu sortieren.
Versuchen Sie jetzt,
Umschalt+Mzu drücken, um nach Speichernutzung zu sortieren. Beobachten Sie, wie sich die Prozessliste neu ordnet. Drücken Sie dannUmschalt+P, um zur Sortierung nach CPU zurückzukehren.- Drücken Sie
Filtern nach Benutzer:
- Drücken Sie
u(kleingeschriebenes u).topfordert Sie nach einem Benutzernamen. Geben Sielabexein und drücken Sie die Eingabetaste. - Jetzt zeigt
topnur Prozesse an, die dem Benutzerlabexgehö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
uund drücken Sie dann die Eingabetaste, ohne einen Benutzernamen einzugeben.
- Drücken Sie
Ändern des Aktualisierungsintervalls:
- Standardmäßig aktualisiert
topalle 3 Sekunden. Sie können dieses Intervall ändern. - Drücken Sie
s(kleingeschriebenes s).topfordert Sie nach einer Verzögerungszeit. Geben Sie1(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
sdrücken und3eingeben.
- Standardmäßig aktualisiert
Prozess beenden:
- Sie können einen Prozess direkt aus
topbeenden. - Lassen Sie uns zunächst einen
sleep-Prozess im Hintergrund in einem neuen Terminalfenster oder -tab starten, oder indem Sie in Ihrem aktuellen TerminalStrg+Zdrücken, dannbgumtopin den Hintergrund zu verschieben, dannsleep 600 &ausführen, dannfgumtopwieder in den Vordergrund zu holen. - Alternativ können Sie einen neuen Terminal-Tab öffnen (z. B.
Strg+Umschalt+Tin vielen Terminals) und dortsleep 600 &ausführen. - Sobald Sie einen
sleep-Prozess ausführen, kehren Sie zu Ihremtop-Terminal zurück. - Drücken Sie
k(kleingeschriebenes k).topfordert Sie nach der PID des Prozesses, den Sie beenden möchten. - Finden Sie die PID Ihres
sleep 600-Prozesses in dertop-Liste. Geben Sie diese PID ein und drücken Sie die Eingabetaste. topfragt dann nach dem zu sendenden Signal. Die Standardeinstellung ist15(SIGTERM). Drücken Sie die Eingabetaste, umSIGTERMzu senden.- Der
sleep-Prozess sollte von der Liste verschwinden. Wenn nicht, können Sie versuchen, erneutkzu drücken und Signal9(SIGKILL) zu senden.
- Sie können einen Prozess direkt aus
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).topfordert Sie nach einer PID und dann nach einem Nice-Wert (z. B.-10für höhere Priorität,10für niedrigere Priorität). - Dies ist eine erweiterte Funktion zur Verwaltung von Systemressourcen. Für dieses Labor drücken Sie einfach
r, dann zweimal dieEingabetaste, um die Operation abzubrechen, ohne etwas zu ändern.
Beenden von
top:- Wenn Sie fertig sind, drücken Sie
q(kleingeschriebenes q), umtopzu beenden und zu Ihrer Terminalaufforderung zurückzukehren.
- Wenn Sie fertig sind, drücken Sie
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.



