A-Z-Befehle

So beenden oder beenden Sie einen Linux-Prozess The Ultimate Guide

So beenden oder beenden Sie einen Linux-Prozess The Ultimate Guide

Multiprocessing-Betriebssysteme wie Linux und BSDs verwenden mehrere Methoden zur Maximierung der CPU-Auslastung. Ein Prozess ist einfach ein Programm in Ausführung. Da zu einem bestimmten Zeitpunkt mehr als ein Linux-Prozess ausgeführt wird, ist die Prozessverwaltung in Linux äußerst wichtig. Benutzer haben oft Probleme wie die Drosselung der CPU-Ressourcen, wenn zu viele Programme ausgeführt werden. Situationen wie diese treten auf, wenn die CPU die wachsende Anzahl von Prozessen nicht bewältigen kann. Obwohl dies nicht vollständig von der Leistung Ihrer CPU abhängt, kann der Umgang mit hängenden oder Zombie-Prozessen ziemlich frustrierend sein. Um Ihnen zu helfen, solche Vorkommnisse einzudämmen, skizzieren wir einige Standardmethoden zum Beenden dieser Prozesse.

Beherrschen Sie nicht reagierendes Prozessmanagement unter Linux


Sie lernen verschiedene Möglichkeiten kennen, um einen Linux-Prozess zu beenden, der überhaupt nicht reagiert. Wenn Sie von Windows kommen, kennen Sie vielleicht Strg+Alt+Entf. Ebenso haben Mac-Benutzer die Command+Option+Escape-Methode, um eingefrorene Prozesse zu beenden. Linux ist viel vielseitiger als seine Gegenstücke und bietet mehr als eine Methode, um tote/nicht reagierende Prozesse anzugehen.

Verschiedene Methoden zum Beenden eines toten Linux-Prozesses


Wir werden hauptsächlich zwei Methoden zum Töten von Zombie-Prozessen skizzieren. Wir verwenden das Linux-Terminal für die erste Methode. Dazu müssen wir zunächst die Prozess-ID ermitteln. Nach erfolgreichem Erhalt können wir diese PID verwenden, um das Programm zu beenden, indem wir bestimmte Signale an diese PID senden.

Außerdem erfahren Sie, wie Sie solche Linux-Kill-Jobs über die grafische Benutzeroberfläche oder das X-Fenster ausführen. Wir werden die 'Systemmonitor' Anwendung in Ubuntu dafür verfügbar. Obwohl dies eine GNOME-Anwendung ist, sind ähnliche Tools für andere Linux-Desktop-Umgebungen verfügbar available.

Beenden eines nicht reagierenden Prozesses über die Befehlszeile


Es gibt mehrere Tools zum Beenden eines nicht reagierenden oder hängenden Prozesses über die Befehlszeile, einschließlich töten, pkill, und töte alle. Diese Befehle funktionieren, indem sie bestimmte Signale an diese nicht reagierenden Prozesse senden. Sie benötigen die Prozess-ID oder PID Informationen, damit Sie ihnen das erforderliche Abschlusssignal senden können.

Die PID oder Prozess-ID ist eine eindeutige Nummer, die einen Prozess identifiziert. Diese werden vom Linux-Kernel zur Laufzeit erstellt und der Prozess-Scheduler steuert ihre CPU-Aktivitäten. Wenn Sie also eine Anwendung aufrufen, erzeugt der Kernel zuerst die erforderlichen Prozesse und weist ihnen diese eindeutigen PID-Werte zu. Mit einem Prozess können mehrere PIDs verknüpft sein. Darüber hinaus hat jeder Prozess einen einzigen übergeordneten Prozess mit einer eindeutigen PPID (Parent Process ID).

Wenn Sie also diese PPID herausfinden können, können Sie mit dafür entwickelten Programmen ein Kill-Signal senden. Im Folgenden erfahren Sie, wie Sie laufende Prozesse unter Linux überprüfen und ihre PPID vom Terminal aus identifizieren können.

Finden Sie die PPID-Informationen heraus


Sie können die PPID eines Prozesses mit mehreren Prozessverwaltungsbefehlen in Linux herausfinden, wie z pidof, pstree, und pgrep. Lassen Sie uns sie einzeln untersuchen und sehen, wie man die PID eines Linux-Prozesses erhält obtain.

Methode 1: Verwenden des ps-Befehls


Der Befehl ps in Linux zeigt alle laufenden Prozesse zusammen mit anderen prozessbezogenen Informationen wie der PID im Terminal an. Wir können diesen Befehl verwenden, um alle Prozesse aufzulisten und dann einen bestimmten Prozess mithilfe von Linux-grep-Befehlen herauszufiltern using. Es sollte uns die Prozess-ID-Informationen anzeigen, an denen wir interessiert sind.

$nano > /dev/null &
$ ps aux | grep "nano"

Zuerst haben wir im Hintergrund einen Linux-Texteditor aufgerufen. Dann haben wir den ps-Befehl neben dem grep-Befehl verwendet, um die PPID dieses Editors herauszufinden. Die Ausgabe kann mehrere Prozess-IDs enthalten, aber wir interessieren uns nur für die erste, da dies unsere PPID ist. Wir können auch den Linux-Befehl awk verwenden, um diese Informationen herauszufinden, wie unten gezeigt.

$ ps aux | awk '/nano/ print $2'

Dieser Befehl ist flexibler, da er alle irrelevanten Informationen unterdrückt. Es werden nur die PPID-Informationen angezeigt, nach denen wir suchen.

Methode 2: Verwenden des pstree-Befehls


Der Befehl pstree bietet uns eine baumartige Ansicht aller laufenden Prozesse. Es bietet eine grafische Ansicht der Linux-Aufgabenliste aus dem Terminalfenster. Mit diesem Befehl können Sie die PPID sowie alle PID-Informationen eines Prozesses anzeigen. Sehen Sie sich die folgenden Beispiele an, um zu erfahren, wie Sie pstree nutzen können, um die PPID eines bestimmten Prozesses zu finden.

$nano > /dev/null &
$ pstree -p | grep 'nano' $ pstree -p | awk '/nano/ print $NF'

Zuerst haben wir mit dem ersten Befehl einen Prozess im Hintergrund erzeugt. Der zweite Befehl ruft dann die PPID dieses Prozesses ab, indem er den grep-Befehl in Linux verwendet. Schließlich zeigt uns der dritte Befehl, wie wir diesen Wert mit dem Befehl awk abrufen retrieve.

Methode 3: Verwenden des pgrep-Befehls


Der Befehl pgrep ist einer der einfachsten Befehle zur Prozessverwaltung unter Linux. Es prüft die Liste aller laufenden Prozesse und druckt die PPID eines bestimmten Prozesses in der Standardausgabe oder in unserem Fall im Terminal aus. Es funktioniert, indem es Regex-Matching durchführt und eignet sich hervorragend zum Schreiben von Linux-Shell-Skripten.

$nano > /dev/null &
$ pgrep 'nano'

Wir haben den Nanoprozess ähnlich wie in den früheren Beispielen hervorgebracht. Dann haben wir seine PPID mit dem Befehl pgrep erhalten. Sobald wir diesen Wert erhalten haben, können wir den Linux-Kill-Job sehr einfach ausführen.

Methode 4: Verwenden des pidof-Befehls


Der Befehl pidof ist eine weitere einfache, aber nützliche Möglichkeit, die PPID eines Linux-Prozesses zu bestimmen. Es zeigt sowohl die PPID als auch alle anderen PIDs an, die einem Prozess zugeordnet sind. Sehen Sie sich die folgende Untersuchung an, um zu sehen, wie Sie dies in der Praxis verwenden können.

$nano > /dev/null &
$ pidof nano $ pidof -s nano

Wenn Sie den Befehl pidof verwenden, um laufende Prozesse unter Linux zu überprüfen, sehen Sie oft mehrere PIDs see. Normalerweise ist in solchen Fällen die erste oder letzte Zahl die PPID, je nachdem, ob sie aufsteigend oder absteigend sortiert sind. Du kannst den ... benutzen -so Option von pidof, um dies zu mildern. Es wird nur der PPID-Wert angezeigt.

Methode 5: Verwenden des oberen Befehls


Der Befehl top bietet eine Echtzeitansicht aller laufenden Prozesse in Unix-ähnlichen Betriebssystemen. Sie können damit die Linux-Aufgabenliste in Ihrem Terminal anzeigen und die PID-Informationen eines bestimmten Prozesses herausfinden specific.

$ nach oben

Verwenden Sie die folgenden Befehle, um die PPID eines bestimmten Prozesses aus der Ausgabe des obersten Befehls abzurufen.

$nano > /dev/null &
$ top -n1 -b | grep 'nano' $ top -n1 -b | awk '/nano/ print $1'

Da top eine Echtzeitausgabe bietet, anstatt statische Daten an das Terminal zu senden, haben wir die -n1 und -b Option zum Drucken der statischen Ausgabe. Dann können Sie die PPID-Informationen abrufen, indem Sie entweder den grep-Befehl oder den awk-Befehl in Linux verwenden.

Beenden Sie den nicht reagierenden Linux-Prozess


Sie können eine der oben genannten Methoden verwenden, um die PPID des nicht reagierenden Prozesses abzurufen. Sobald Sie dies erhalten haben, ist es an der Zeit, den Prozess vollständig abzubrechen. Es gibt mehrere Befehle, die uns dies ermöglichen, wie zum Beispiel töten, pkill, und töte alle. Wir werden in den folgenden Abschnitten sehen, wie sie nacheinander funktionieren.

Methode 1: Verwenden des Kill-Befehls


Der Befehl kill wird aufgrund seiner Einfachheit und robusten Aktionen häufig von Linux-Administratoren verwendet. Es braucht die PID des Prozesses und ein Signal. Der Kernel beendet/stoppt die Ausführung des Prozesses basierend auf diesem Signal. Mit dem nächsten Befehl können Sie alle verfügbaren Signale zum Kill-Befehl anzeigen.

$ töten -l

Wie Sie sehen können, bietet kill 64 verschiedene Signale. In diesem Leitfaden werden wir jedoch nur zwei davon behandeln. Dies sind Signal 9 (SIGKILL) und Signal 15 (SIGTERM). SIGTERM oder Signal 15 ist die sichere Methode zum Beenden eines nicht reagierenden Prozesses. SIGKILL oder Signal 9 hingegen tötet einen Linux-Prozess.

$ kill -9 8631 $ kill -KILL 8631

Die obigen Befehle sind gleichwertig und erzwingen das Beenden des Prozesses mit der PID 8631. Das ist die PPID des Prozesses 'nano' in meinem System. Ersetzen Sie dies durch die PID des nicht reagierenden Prozesses in Ihrem System.

$ töten -15 8631 $ töten -TERM 8631

Die obigen Befehle sind ebenfalls äquivalent und beenden den Prozess ordnungsgemäß. Deshalb kann es einige Zeit dauern, bis der Prozess beendet ist. Darüber hinaus müssen Sie möglicherweise anhängen sudo vor dem kill-Befehl, wenn der Prozess einem anderen Benutzer gehört.

Methode 2: Verwenden des pkill-Befehls


Der Befehl pkill ist einer der vielseitigsten Befehle zur Prozessverwaltung unter Linux. Es ermöglicht uns, einen nicht reagierenden Prozess basierend auf seinem Namen, PID, Besitzer und anderen Laufzeitattributen zu beenden. Es ist ein perfektes Werkzeug für Anfänger oder Personen, die mit vielen Standard-Terminalbefehlen nicht vertraut sind.

$ pkill nano $ pkill 8631 $ pkill -e nano $ pkill -f nano

Sie können jeden der oben genannten pkill-Befehle verwenden, um einen Zombie-/nicht reagierenden Prozess unter Linux zu beenden. Verwenden Sie die -e Option, wenn Sie eine Bestätigung für den Linux-Kill-Job wünschen. Der Befehl pkill ermöglicht es Benutzern auch, bestimmte Beendigungssignale zu senden.

Methode 3: Verwenden des killall-Befehls


Mit dem Befehl killall können Benutzer nicht reagierende Prozesse basierend auf ihren Namen beenden. Es ist einfacher zu bedienen, kann aber Probleme bereiten, wenn Sie nicht vorsichtig sind. Da killall Prozesse basierend auf Namen beendet, besteht immer die Möglichkeit, dass Sie einen Prozess zufällig beenden. Wenn in Ihrem System beispielsweise verschiedene Versionen von nano verfügbar sind, werden sie im ersten Beispiel alle gelöscht kill.

$ killall nano $ killall --verbose nano $ killall --interactive nano $ killall --signal KILL nano

Das erste Beispiel zeigt die grundlegende Verwendung des killall-Befehls unter Linux. Der zweite Befehl meldet, ob der Kill-Job erfolgreich war oder nicht, und der dritte Befehl fordert den Benutzer zur Bestätigung auf, bevor der Prozess beendet wird. Standardmäßig verwendet killall das SIGTERM-Signal zum Beenden von Prozessen. Sie können das Signal jedoch manuell vorgeben, wie im letzten Beispiel gezeigt.

Methode 4: Verwenden von praktischen Einzeilern


Die wahre Schönheit von Linux liegt in der Tatsache, dass es Benutzern ermöglicht, ausgeklügelte Befehlskombinationen basierend auf ihren Bedürfnissen zu erstellen. Um dies zu demonstrieren, haben wir im Abschnitt ein paar Einzeiler skizziert.

$nano > /dev/null &
$ kill -9 $(pgrep nano) $ ps aux | grep -e 'nano' | awk 'print $2' | xargs töten -9

Im ersten Beispiel haben wir Shell-Interpolation verwendet, um die PID des Prozesses 'nano' an den Linux-Befehl kill zu übergeben. Das zweite Beispiel verwendet mehrere alltägliche Terminalbefehle und eine E/A-Umleitung, um den Prozess abzubrechen. Sie können Ihre eigenen raffinierten Einzeiler kuratieren, sobald Sie mit dem Linux-Terminal vertraut sind.

Methode 5: Beenden Sie mehrere Prozesse mit Linux-Shell-Skripten


Manchmal möchten Benutzer möglicherweise mehr als einen einzelnen Prozess beenden. Wir können solche Aufgaben leicht automatisieren, indem wir einfache Shell-Skripte schreiben. Wenn Sie sich für dieses Thema interessieren, lesen Sie unsere vorherige Anleitung zu Linux-Shell-Skripten. Das folgende Skript ruft die PPID der Prozesse ab, die Sie beenden möchten, und beendet sie dann mit Kill-Signalen.

$ Nano-Proc-Killer.Sch
#!/usr/bin/env bash für pro in "$@" do pid=$(pgrep $pro | head -1) echo $pid comm="kill -9 $pid" eval $comm done

Speichern Sie nun diese Datei und fügen Sie die Ausführungsberechtigung hinzu, indem Sie den folgenden Befehl ausführen.

$ chmod +x proc-killer.Sch

Sie können diesem Skript nun den Namen der Prozesse übergeben, die Sie beenden möchten.

$ ./proc-killer.sh nano gedit vlc

Ersetzen Sie einfach die Argumente durch die Namen der nicht reagierenden Linux-Prozesse in Ihrem System.

Beenden eines nicht reagierenden Prozesses über die GUI


Sie können einen nicht reagierenden Prozess auch über die grafische Benutzeroberfläche oder das X-Fenster beenden. Wir diskutieren zwei Methoden dafür im folgenden Abschnitt.

Methode 1: Verwenden der xkill-Anwendung


Moderne Linux-Distributionen verwenden das grafische X-Fenster, um Benutzern ein elegantes grafisches Erlebnis zu bieten. Es gibt ein einfaches Tool namens xkill, mit dem Benutzer ein nicht reagierendes GUI-Fenster schließen können. Dies ist möglich, da das Titelfenster einer Anwendung unter Linux von der Anwendung selbst getrennt ist.

Gehen Sie einfach zu Ihrem Linux-Terminalemulator und geben Sie xkill . ein. Es verwandelt Ihren Mauszeiger in eine X-Taste, mit der Sie jedes GUI-Fenster schließen können.

$ xkill

Jetzt müssen Sie nur noch auf die Fensterleiste der nicht reagierenden Anwendung klicken, und sie wird ausgeschaltet und verschwindet sofort.

Methode 2: Verwenden der Systemmonitoranwendung unter Ubuntu


Die meisten Mainstream-Linux-Distributionen verfügen über eine Art GUI-Überwachungstool, mit dem Benutzer einen hängenden Linux-Prozess grafisch beenden können. Zum Beispiel ermöglicht uns die Systemmonitor-Anwendung auf Ubuntu, einen nicht reagierenden Prozess auf intuitive Weise zu beenden. Sie können den toten Prozess einfach aus der Prozessliste auswählen und beenden, indem Sie mit der rechten Maustaste auf den Prozess klicken und die Option zum Beenden auswählen.

Es gibt viele weitere Alternativen zu dieser Anwendung, und wir sind sicher, dass Sie leicht eine für Ihre Distribution oder Desktop-Umgebung finden werden.

Gedanken beenden


Da das Prozessmanagement unter Linux sehr vielseitig ist, sind Benutzer oft frustriert, wenn sie mit nicht reagierenden Prozessen umgehen. Aus diesem Grund haben unsere Redakteure in diesem Handbuch alle Möglichkeiten zum Beenden eines toten Linux-Prozesses skizziert. Nachdem Sie dies gelesen haben, sollten Sie in der Lage sein, alle nicht reagierenden Prozesse entweder über die Befehlszeile oder über die GUI zu beenden. Sie können auch jeden unserer Einzeiler-Befehle verwenden, um solche Belästigungen in kürzester Zeit zu beheben. Darüber hinaus können Sie sogar mehr als einen einzelnen Prozess beenden, indem Sie unser einfaches Shell-Skript verwenden. Hoffentlich haben Sie die Informationen, die Sie gesucht haben, von unserem Guide erhalten.

Emulieren Sie Mausklicks, indem Sie den Mauszeiger mit der klicklosen Maus in Windows 10 bewegen
Die Verwendung einer Maus oder Tastatur in der falschen Haltung bei übermäßiger Nutzung kann zu vielen gesundheitlichen Problemen führen, einschließli...
Fügen Sie mit diesen kostenlosen Tools Mausgesten zu Windows 10 hinzu
In den letzten Jahren haben sich Computer und Betriebssysteme stark weiterentwickelt. Es gab eine Zeit, in der Benutzer Befehle verwenden mussten, um ...
Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...