So beenden Sie einen Prozess in Linux

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:

SignalNumerischer WertBeschreibungSIGHUP1Es steht für „Signal Hangup“
Es wird gesendet, wenn das Terminal geschlossen wird. SIGINT2 Es steht für „Signal Interrupt“.
Es wird gesendet, wenn der Benutzer den Prozess beendet.SIGKILL9Es steht für „Signal Kill“.
Es wird gesendet, wenn Sie einen Prozess sofort beenden müssenSIGTERM15Es steht für ‚Signal Termination‘
Es wird gesendet, wenn Sie einen Prozess beenden und die verbrauchten Ressourcen freigeben müssenSIGSTOP19 – für ARM, x86
17 – für Alpha
23 – für MIPS
24 – für PA-RISCIt steht für „Signal Stop“
Es wird gesendet, wenn Sie einen Prozess anhalten und später fortsetzen müssen. Die am häufigsten verwendeten Signale sind SIGKILL (9) und SIGTERM (15).

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 den Befehl ps:

p.s

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 den Befehl grep mit dem Befehl ps in einer Pipeline verwenden, wie unten gezeigt:

  So spielen Sie Nintendo Gameboy-Spiele unter Linux

p.s. | grep

Zur Vereinfachung gibt es einen separaten Befehl, der nur die Prozess-ID eines laufenden Prozesses anzeigt, den Sie kennen müssen. Die Syntax zur Verwendung des pidof-Befehls lautet:

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 Parameter ist optional und der Befehl kill 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.

Beenden Sie den Prozess 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:

OptionDescription-nWählt nur die neuesten Prozesse aus, die mit der Prozess-ID übereinstimmen.-uWählt die Prozesse aus, die einem bestimmten Benutzer gehören.-xWählt Prozesse aus, die genau mit dem Muster übereinstimmen

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 er beendet alle Prozesse, die mit dem Prozessnamen übereinstimmen, unabhängig vom Benutzer. Standardmäßig sendet es das SIGTERM-Signal, wenn nicht anders angegeben. Interessant ist, dass der killall-Befehl sich niemals selbst beenden kann, aber andere Instanzen des killall-Befehls beenden kann. Die Syntax zur Verwendung des killall-Befehls lautet:

killall

Einige der Optionen zum Koppeln mit dem Befehl killall sind:

OptionDescription-rInterpretiert den Prozessnamen als Regex-Muster und beendet dann die Prozesse, die mit dem Muster übereinstimmen.-uBeendet den angegebenen Prozess, der einem angegebenen Eigentümer gehört.-oBeendet die angegebenen Prozesse, die älter sind (vorher gestartet) als eine bestimmte Zeit.-yBeendet die angegebenen Prozesse, die jünger sind ( begonnen nach) der bestimmten 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 schlafen

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:

  Bestaunen Sie die Sterne auf Ihrem Linux-PC mit Stellarium

Spitze

Verständnis der Ausgabe:

Die Hauptausgabe des obersten Befehls ist in folgende Spalten unterteilt:

  • PID – zeigt die Prozess-ID des laufenden Prozesses an
  • 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
  • %CPU – Zeigt die CPU-Nutzung des Prozesses in Prozent an
  • %MEM – Zeigt die vom Prozess genutzte RAM-Menge in Prozent an
  • TIME+ – 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 der oberste Befehl Details wie Prozess-ID, Speicherverbrauch und mehr für alle laufenden Prozesse anzeigt, ist er für Anfänger nicht gut geeignet, da er keine Tastenzuordnungen oder seine Verwendung zeigt. Andererseits hat der Befehl htop eine benutzerfreundlichere Oberfläche, selbst für ein Befehlszeilentool. 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 verwenden, um htop unter Linux zu installieren:

    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 Prozessname wird hervorgehoben, drücken Sie F9 und dann die Eingabetaste auf der Tastatur, um den Prozess 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.

      So kopieren Sie die Ordnerstruktur, ohne Dateien auf einem Windows-PC, Mac oder Linux zu kopieren

    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 zur Registerkarte „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.