So beenden Sie nicht reagierende Prozesse in Linux mit kill und pkill
Der Umgang mit nicht reagierenden Programmen kann eine schwierige Aufgabe sein, insbesondere wenn Sie auf älterer Hardware laufen. In diesem Fall wird das Einfrieren des Systems zu einem häufigen Problem. Glücklicherweise gibt es viele Möglichkeiten, nicht reagierende Prozesse in Linux zu beenden.
Die Befehle kill und pkill bieten einfache, aber effektive Lösungen, um nicht reagierende Zombie-Prozesse vom Terminal aus zu beenden. In den folgenden Abschnitten wird beschrieben, wie Sie unter Linux hängende Prozesse mit kill und pkill beenden.
Beenden Sie nicht reagierende Prozesse mit kill
Mit dem Befehl kill in Linux können Sie nicht reagierende Prozesse problemlos beenden. Er sendet ein Abschlusssignal an den Prozess. Standardmäßig sendet kill das SIGTERM- Signal, dargestellt durch die Signalnummer 15 . Im folgenden Beispiel wird kill verwendet, um einen Prozess mit einer PID von 27065 zu stoppen.
kill 27065
Benutzer können andere Signale senden, indem sie den Signalnamen oder die Nummer angeben. Die folgenden Kill-Befehle stoppen beispielsweise einen Zombie-Prozess mithilfe des SIGKILL- Systemsignals, das durch die Signalnummer 9 repräsentiert wird.
kill -9 27065
kill -SIGKILL 27065
Der Unterschied zwischen SIGTERM und SIGKILL besteht darin, dass Prozesse das SIGTERM-Signal abfangen und ignorieren können. SIGKILL ist jedoch immun gegen die Verarbeitung von Prozessen und beendet Programme sofort.
Sie können eine Liste aller verfügbaren Signale anzeigen, indem Sie die folgenden Kill-Befehle verwenden.
kill -l
kill -L
Insgesamt eignet sich SIGKILL besser für den Umgang mit nicht reagierenden Systemprozessen . Auf der anderen Seite ist SIGTERM der richtige Weg, wenn Sie hängende Programme ordnungsgemäß beenden möchten.
Beenden Sie nicht reagierende Prozesse mit pkill
Der Befehl pkill erleichtert das Beenden von Prozessen unter Linux, indem er es uns ermöglicht, Programme basierend auf ihrem Namen zu beenden. Der folgende Befehl beendet beispielsweise das Nano- Programm mit pkill.
pkill nano
Wie kill sendet auch pkill standardmäßig das SIGTERM-Signal. Verwenden Sie das Signal SIGKILL, wenn Sie den nicht reagierenden Prozess sofort stoppen möchten.
pkill -9 nano
So erhalten Sie die Prozess-ID (PID) eines Prozesses
Die PID-Informationen können eine große Hilfe beim Beenden nicht reagierender Prozesse unter Linux sein. Sie können die PID-Nummer eines Prozesses auf verschiedene Weise abrufen. Der folgende Befehl ruft die PID eines Prozesses namens nano mit dem Befehl grep und ps ab.
ps aux | grep nano
Sie können auch den Befehl pgrep verwenden, der die Prozess-ID direkt ausspuckt.
pgrep nano
Verwalten nicht reagierender Prozesse unter Linux
Die Befehle kill und pkill machen den Umgang mit nicht reagierenden Prozessen unter Linux mühelos. Alles, was Sie brauchen, um einen Zombie-Prozess zu stoppen, ist seine PID und der Zugriff auf eine Shell. Möglicherweise benötigen Sie jedoch zusätzliche Sudo-Berechtigungen, wenn Sie Prozesse beenden, die einem anderen Benutzer gehören. Wenn Sie sich also auf einem Mehrbenutzersystem befinden, bitten Sie den Administrator, Sie zur Sudoers-Liste hinzuzufügen, bevor Sie etwas unternehmen.