Wir alle kennen diese Tage, an denen unser Computer außergewöhnlich langsam läuft und selbst bei den grundlegenden Aufgaben stottert. In Windows haben Sie nur den Windows Task-Manager, um Prozesse zu inspizieren und zu beenden, die nicht so wichtig sind, aber enorme Mengen an Speicher verbrauchen. Unter Linux steht Ihnen jedoch ein ganzes Arsenal an Befehlen und GUI-Tools zur Verfügung, um diese Aufgaben zu bewältigen. In diesem Artikel zeigen wir einige einfache Befehlszeilenmethoden (CLI) sowie GUI-Methoden zum Beenden eines Prozesses in Linux.
Prozess beenden in Linux (2023)
Aber bevor wir in die Welt des Prozessmanagements in Linux eintauchen, lassen Sie uns verstehen, was genau ein Prozess ist und was eine Prozess-ID in Linux-Systemen ist.
Was sind Prozesse in Linux
Unter Linux wird jede aktuell laufende Instanz eines Programms als „Prozess“ bezeichnet, während jede ausführbare Datei als Programm bezeichnet wird. Wenn ein beliebiges Programm ausgeführt wird, wird ein Prozess erstellt und jedem Prozess wird eine eindeutige 5-stellige Identifikationsnummer zugewiesen, die als „Prozess-ID“ bekannt ist. Wenn ein Prozess die Ausführung beendet hat oder zwangsweise beendet wird, wird seine Prozess-ID dem nächsten Prozess in der Reihe zugewiesen.
Beenden Sie den Prozess über die Befehlszeile in Linux
Obwohl die Verwendung des Terminals im Vergleich zur Verwendung von GUI-Tools für grundlegende Aufgaben manchmal einschüchternd erscheinen mag, wird die Verwaltung verschiedener Prozesse viel einfacher, sobald Sie die Befehle und ihre verschiedenen Optionen verstehen.
Beendigungssignale
Wenn Sie versuchen, einen Prozess entweder über die GUI oder die CLI unter Linux zu beenden, sendet der Kernel ein Beendigungssignal an den Prozess. Je nach empfangenem Signal verhält sich der Prozess entsprechend. Jedem dieser Signale ist eine bestimmte Nummer zugeordnet, damit das Programm es schnell verstehen kann. Es gibt zahlreiche Arten von Terminierungssignalen, aber wir haben hier nur die wesentlichen erklärt:
Signal | Zahlenwert | Beschreibung |
---|---|---|
SEUFZEND | 1 | Es steht für „Signal Hangup“ Es wird gesendet, wenn das Terminal geschlossen wird. |
SIGN | 2 | Es steht für „Signal Interrupt“ Es wird gesendet, wenn der Benutzer den Prozess beendet. |
SIGKILL | 9 | Es steht für „Signal Kill“. Es wird gesendet, wenn Sie einen Prozess sofort beenden müssen |
SIGTERM | 15 | Es steht für „Signal Termination“. Es wird gesendet, wenn Sie einen Prozess beenden und die verbrauchten Ressourcen freigeben müssen |
SIGSTOP | 19 – für ARM, x86 17 – für Alpha 23 – für MIPS 24 – für PA-RISC | Es steht für „Signal Stop“ Es wird gesendet, wenn Sie einen Prozess anhalten und später fortsetzen müssen |
Identifizieren Sie die Prozess-IDs
Bevor Sie einen Prozess beenden, müssen Sie einige Details des Prozesses kennen, z. B. die Prozess-ID, die Laufzeit usw. Um die Details eines Prozesses zu erfahren, verwenden Sie die ps
Befehl:
ps
Mit dem Befehl ps müssen Sie nach dem Prozess suchen, indem Sie scrollen und seinen Namen notieren, was umständlich sein könnte. Stattdessen können Sie sogar die verwenden grep
Befehl mit dem ps
Befehl in einer Pipeline, wie unten gezeigt:
ps | grep
Zur Vereinfachung gibt es einen separaten Befehl, der nur die Prozess-ID eines laufenden Prozesses anzeigt, den Sie kennen müssen. Die zu verwendende Syntax pidof
Befehl ist:
pidof
Beenden Sie den Prozess mit dem Kill-Befehl
Nachdem Sie sich die Prozess-ID des Prozesses notiert haben, den Sie beenden möchten, ist der am häufigsten verwendete Befehl zum Beenden von Programmen auf Ihrem Linux-System der Kill-Befehl. Die Syntax zur Verwendung des Kill-Befehls lautet:
kill
Der Der Parameter ist optional und der Kill-Befehl sendet standardmäßig das Signal SIGTERM (15). Sie können jedes andere Signal anhand seines numerischen Werts oder des tatsächlichen Signalnamens aus der obigen Tabelle senden.
Prozess beenden mit dem pkill-Befehl
Wenn Sie der Meinung sind, dass die Suche nach der Prozess-ID unbequem ist, können Sie den Befehl pkill verwenden. Es sucht nach den Prozessen, die einem Muster entsprechen, und beendet es dann. Die Syntax zur Verwendung des pkill-Befehls lautet:
pkill
Einige der gängigen Optionen zum Koppeln mit dem Befehl pkill sind:
Möglichkeit | Beschreibung |
---|---|
-n |
Wählt nur die neuesten Prozesse aus, die der Prozess-ID entsprechen |
-u |
Wählt die Prozesse aus, die einem bestimmten Benutzer gehören |
-x |
Wählt Prozesse aus, die genau dem Muster entsprechen |
Dies ist besonders wichtig, wenn mehrere Benutzer an verschiedenen Instanzen desselben Programms im selben System arbeiten und eine der Instanzen ein unerwartetes Verhalten zeigt. Im folgenden Screenshot beenden wir beispielsweise die „gedit“-Instanz, die dem Benutzer „intel“ gehört, indem wir den pkill-Befehl in Linux verwenden:
pkill -u intel gedit
Beenden Sie den Prozess mit dem Befehl killall
Der killall
Befehl funktioniert ähnlich wie der kill
Befehl, aber es beendet alle Prozesse, die dem Prozessnamen entsprechen, unabhängig vom Benutzer. Standardmäßig sendet es die SIGTERM-Signal wenn nicht anders angegeben. Interessant ist, dass die killall
Der Befehl kann sich niemals selbst beenden, kann aber andere Instanzen von beenden killall
Befehl. Die zu verwendende Syntax killall
Befehl ist:
killall
Einige der Optionen zum Koppeln mit dem Befehl killall sind:
Möglichkeit | Beschreibung |
---|---|
-r |
Interpretiert den Prozessnamen als Regex-Muster und beendet dann die Prozesse, die dem Muster entsprechen |
-u |
beendet den angegebenen Prozess, der einem angegebenen Eigentümer gehört. |
-o |
Beendet die angegebenen Prozesse, die älter (vorher gestartet) als eine bestimmte Zeit sind. |
-y |
Beendet die angegebenen Prozesse vor (gestartet nach) der angegebenen Zeit. |
Der Befehl killall kann nützlich sein, um eine Reihe desselben Prozesses oder sogar alle Prozesse zu beenden, die einem bestimmten Eigentümer gehören. Hier in unserem Beispiel beenden wir alle Prozesse des „Schlafens für 500 Sekunden“ mit dem Befehl killall in Linux:
killall -v sleep
Beenden Sie den Linux-Prozess mit dem Befehl top/htop
Diese Methode zum Beenden von Prozessen ist nützlich, wenn Sie keine Ahnung haben, welche Prozesse die maximalen Ressourcen verbrauchen. In beiden Befehlen können Sie durch alle laufenden Prozesse oder sogar Zombie-Prozesse navigieren und diese schnell beenden. Um den obersten Befehl zum Überwachen Ihrer Ressourcen zu verwenden, verwenden Sie die Syntax im Terminal:
top
Verständnis der Ausgabe:
Die Hauptausgabe des obersten Befehls ist in folgende Spalten unterteilt:
- PID – zeigt die Prozess-ID des laufenden Prozesses
- Benutzer – zeigt den Besitzer des Prozesses an
- PR – zeigt den vom Betriebssystem zugewiesenen Prioritätswert des Prozesses an
- NI – zeigt die netten Werte, die wie das Zuweisen von benutzerdefinierten Werten sind, um die Priorität einer Aufgabe manuell zu steuern.
- VIRT – zeigt die Menge des vom Prozess verwendeten virtuellen Speichers an.
- RES – zeigt die Menge an physischem Speicher, die vom Prozess verwendet wird
- SHR – zeigt die Menge an Speicher, die von anderen Prozessen gemeinsam genutzt wird
- S – zeigt den aktuellen Status des Prozesses an, der sein kann:
- D – unterbrechungsfreier Schlaf
- R – läuft
- S – schlafen
- T – angehalten
- Z – Zombie
- %ZENTRALPROZESSOR – Zeigt die CPU-Auslastung des Prozesses in Prozent an
- %MEM – Zeigt die vom Prozess verwendete RAM-Menge in Prozent an
- ZEIT+ – Zeigt die Gesamtlaufzeit des Prozesses an
- Befehl – Zeigt an, welcher Befehl für den Prozess aufgerufen wurde.
Wenn Sie die Prozess-ID der Aufgabe, die Sie beenden möchten, nicht kennen, navigieren Sie entweder mit den Pfeiltasten durch die Liste oder suchen Sie in Linux in der Prozesstabelle nach dem Prozessnamen.
Um den Prozessnamen zu suchen, Drücken Sie ‚L‘ auf der Tastatur und geben Sie den Prozessnamen ein, den Sie suchen möchten. Sobald Sie den schändlichen Prozess gefunden haben, Drücken Sie ‚k‘ auf der Tastatur, um den Prozess zu beenden. Geben Sie nun die Prozess-ID ein oder belassen Sie es beim aktuell markierten Prozess und drücken Sie ‚ENTER‘. Geben Sie als nächstes das Beendigungssignal ein und drücken Sie dann ‚ENTER‘, um das Programm zu beenden. Um zum Terminal zurückzukehren, drücken Sie ‚q‘ auf der Tastatur.
Obwohl die top
Der Befehl zeigt Details wie Prozess-ID, Speicherverbrauch und mehr für alle laufenden Prozesse an. Er ist für Anfänger nicht gut geeignet, da er keine Tastenzuordnungen oder seine Verwendung zeigt. Andererseits, Die htop
Befehl hat eine benutzerfreundlichere Oberfläche, sogar für ein Kommandozeilentool. Außerdem werden alle Details in einer separaten Ansicht angezeigt, sodass das Terminalfenster nicht überladen wird. Es ist in den meisten Distributionen nicht vorinstalliert, und Sie müssen den folgenden Befehl zur Installation verwenden htop
unter Linux:
sudo apt install -y htop
Verwenden Sie den folgenden Befehl, um htop zum Verwalten von Prozessen unter Linux zu verwenden:
htop
Um ein Programm zu beenden, navigieren Sie zu dem Prozessnamen, den Sie beenden möchten, drücken Sie „F9“ und dann die Eingabetaste. Wenn Sie ein Programm suchen und beenden müssen, drücken Sie „F3“ auf der Tastatur, geben Sie den Namen ein und drücken Sie die Eingabetaste. Der Der Prozessname wird hervorgehobendrücken Sie F9 und dann die Eingabetaste auf der Tastatur, um den Vorgang zu beenden.
Beenden Sie einen Prozess über den Systemmonitor in Linux
Wenn Sie der Meinung sind, dass die Befehlszeilenmethode für Sie schwierig ist, können Sie das integrierte Systemüberwachungstool verwenden, das in jeder Linux-Distribution verfügbar ist. Um zu erfahren, wie es funktioniert, öffnen Sie das Systemmonitor-Tool aus dem Anwendungsmenü und führen Sie die folgenden Schritte aus.
1. Sobald sich das Systemüberwachungstool öffnet, sehen Sie oben drei Registerkarten mit den Namen „Prozesse“, „Ressourcen“ und „Dateisystem“. Um Ihre Prozesse zu verwalten, gehen Sie zu Reiter „Prozesse“.. Hier sehen Sie alle Ihre derzeit laufenden Prozesse. Drücken Sie „STRG+F“, um nach einem Prozessnamen zu suchen. Klicken Sie auf den Prozessnamen, den Sie beenden möchten, und klicken Sie auf „Prozess beenden“.
2. Anschließend erhalten Sie eine Sicherheitsabfrage, ob Sie den Vorgang beenden möchten oder nicht. Fahren Sie fort und klicken Sie auf die große rote Schaltfläche „Prozess beenden“, um den Prozess unter Linux zu beenden.
Häufig gestellte Fragen
Wie stoppe ich alle Prozesse in Linux?
Wenn Sie alle Prozesse (mit Ausnahme der Login-Shell, Init und Kernel-spezifischen Prozesse) für einen bestimmten Benutzer unter Linux stoppen müssen, verwenden Sie entweder den Befehl pkill oder den Befehl killall gemäß der Syntax:
pkill -u
killall -u
Wenn Sie jeden Prozess für jeden Benutzer beenden müssen, einschließlich des Init-Systems, drücken Sie die Tasten „ALT + Prt Sc + o“ auf der Tastatur.
Ist es in Ordnung, einen Prozess zu beenden?
Wenn Sie einen nicht wesentlichen Hintergrundprozess oder einen Benutzerprozess schließen, der viel Systemspeicher verbraucht, geben Sie die Ressourcen frei, die jetzt von anderen Prozessen verwendet werden können. Stellen Sie jedoch vor dem Herunterfahren eines Prozesses sicher, dass Sie keinen wichtigen Betriebssystemprozess beenden.
Was sind die Hintergrundprozesse in Linux?
Unter Linux sind Hintergrundprozesse Prozesse, die ohne die Shell-Instanz oder ohne Benutzereingriff ausgeführt werden können. Sie können mit jedem der Befehle angezeigt werden – top, htop, ps usw.
Was ist ein Zombie-Prozess??
Ein Prozess, der vom Benutzer beendet wurde, aber immer noch Speicher belegt, wird als Zombie-Prozess bezeichnet.
Was macht STRG + Z unter Linux?
Wenn Sie STRG + Z unter Linux verwenden, sendet es das SIGTSTP-Signal, das den Prozess anhält und im Hintergrund sendet. Wenn sich ein Prozess im Hintergrund in einem angehaltenen Zustand befindet, können Sie den Prozess nicht beenden, bis er wieder in den Vordergrund gebracht wird.
Beenden Sie Prozesse in Linux einfach
Das Beenden von speicherraubenden Prozessen ist eine ziemlich wichtige Aufgabe, die jeder Benutzer lernen sollte. In diesem Artikel haben wir sowohl die Befehlszeilenmethode, einschließlich Befehlen wie killall und pkill, als auch die GUI-Methoden zum Beenden von Prozessen in Linux gezeigt. Wir haben sogar detailliert beschrieben, wie Sie beliebte Tools wie top und htop verwenden, um Prozesse auf Ihrem Linux-PC zu verwalten. Wenn Sie bei der Verwendung dieser Tools zum Beenden eines Prozesses auf Probleme stoßen, teilen Sie uns dies in den Kommentaren unten mit.