Abgestürzte Programme beenden unter Linux / Ubuntu
Inhaltsverzeichnis:
- Befehl
kill - Beenden von Prozessen mit dem Befehl
kill - Erneutes Laden von Prozessen mit dem Befehl
kill - Fazit
Linux ist ein großartiges und fortschrittliches Betriebssystem, aber es ist nicht perfekt. Von Zeit zu Zeit reagieren einige Anwendungen möglicherweise nicht mehr richtig oder verbrauchen viele Systemressourcen. Nicht reagierende Anwendungen können nicht neu gestartet werden, da der ursprüngliche Anwendungsprozess niemals vollständig beendet wird. Die einzige Lösung besteht darin, entweder das System neu zu starten oder den Anwendungsprozess abzubrechen.
Es gibt verschiedene Dienstprogramme, mit denen Sie fehlerhafte Prozesse beenden können
kill
indem Sie die am häufigsten verwendeten beenden.
Befehl
kill
kill
ist eine Shell, die in den meisten von Bourne abgeleiteten Shells wie Bash und Zsh eingebaut ist. Das Befehlsverhalten unterscheidet sich geringfügig zwischen den Shells und der eigenständigen
/bin/kill
Programmdatei.
Verwenden Sie den Befehl
type
, um alle Speicherorte auf Ihrem System anzuzeigen, die
kill
enthalten:
type -a kill
kill is a shell builtin kill is /bin/kill
Die obige Ausgabe besagt, dass die eingebaute Shell Vorrang vor der eigenständigen ausführbaren Datei hat und immer dann verwendet wird, wenn Sie
kill
eingeben. Wenn Sie die Binärdatei verwenden möchten, geben Sie den vollständigen Pfad zur Datei
/bin/kill
. Wir werden den eingebauten Bash verwenden.
Die Syntax des Befehls
kill
hat folgende Form:
kill…
Der Befehl
kill
sendet ein Signal an bestimmte Prozesse oder Prozessgruppen und veranlasst diese, entsprechend dem Signal zu handeln. Wenn das Signal nicht angegeben wird, ist der Standardwert
-15
(-TERM).
Die am häufigsten verwendeten Signale sind:
-
1(HUP) - Laden Sie einen Prozess neu.9(KILL) - Beende einen Prozess.15(TERM) - Beenden Sie einen Prozess mitTERM.
Um eine Liste aller verfügbaren Signale zu erhalten, rufen Sie den Befehl mit der Option
-l
:
kill -l

Signale können auf drei verschiedene Arten angegeben werden:
- Verwenden von Zahlen (z. B.
-1oder-s 1). Verwenden des Präfixes "SIG" (z. B.-SIGHUPoder-s SIGHUP). Ohne das Präfix "SIG" (z. B.-HUPoder-s HUP).
Die folgenden Befehle sind einander äquivalent:
kill -1 PID_NUMBER
kill -SIGHUP PID_NUMBER
kill -HUP PID_NUMBER
Die PIDs, die dem Befehl
kill
gestellt werden, können eine der folgenden sein:
- Wenn die
PIDgrößer als Null ist, wird das Signal mit der ID gleich derPIDan den Prozess gesendet. Wenn diePIDgleich Null ist, wird das Signal an alle Prozesse in der aktuellen Prozessgruppe gesendet. Mit anderen Worten, das Signal wird an alle Prozesse gesendet, die zur GID der Shell gehören, die den Befehlkillaufgerufen hat. Verwendenps -efjBefehlps -efj, um die Prozessgruppen-IDs (GIDs) anzuzeigen. WennPIDgleich-1, wird das Signal an alle Prozesse mit derselben UID wie der Benutzer gesendet, der den Befehl aufruft. Wenn der aufrufende Benutzer root ist, wird das Signal an alle Prozesse mit Ausnahme von init und demkillProzess selbst gesendet. Wenn diePIDkleiner als-1, wird das Signal an alle Prozesse in der Prozessgruppe eq gesendet, wobei die GID gleich dem absoluten Wert von ist diePID.
Normale Benutzer können Signale an ihre eigenen Prozesse senden, jedoch nicht an diejenigen anderer Benutzer, während der Root-Benutzer Signale an die Prozesse anderer Benutzer senden kann.
Beenden von Prozessen mit dem Befehl
kill
Um einen Prozess mit dem Befehl
kill
zu beenden oder abzubrechen, müssen Sie zunächst die Prozess-ID-Nummer (PID) ermitteln. Sie können dies mit verschiedenen Befehlen wie
top
,
ps
,
pidof
und
pgrep
pidof
.
Angenommen, der Firefox-Browser reagiert nicht mehr und Sie müssen den Firefox-Prozess beenden. Um die Browser-PIDs zu finden, verwenden Sie den Befehl
pidof
:
pidof firefox
Der Befehl gibt die IDs aller Firefox-Prozesse aus:
6263 6199 6142 6076
Sobald Sie die
TERM
kennen, können Sie alle beenden, indem Sie das
TERM
Signal senden:
kill -9 2551 2514 1963 1856 1771
Anstatt nach PIDs zu suchen und die Prozesse dann zu beenden, können Sie die obigen Befehle zu einem kombinieren:
Erneutes Laden von Prozessen mit dem Befehl
kill
Ein weiterer häufiger Anwendungsfall für
kill
ist das Senden des
HUP
Signals, mit dem die Prozesse
HUP
werden, die Einstellungen neu zu laden.
Um beispielsweise Nginx neu zu laden, müssen Sie ein Signal an den Master-Prozess senden. Die Prozess-ID des Nginx-Master-Prozesses finden Sie in der Datei
nginx.pid
, die sich normalerweise im Verzeichnis
/var/run
.
Verwenden Sie den Befehl
cat
, um die Master-PID zu finden:
cat /var/run/nginx.pid
30251
Sobald Sie die Master-PID gefunden haben, laden Sie die Nginx-Einstellungen neu, indem Sie Folgendes eingeben:
sudo kill -1 30251
Der obige Befehl muss als root oder Benutzer mit sudo-Berechtigungen ausgeführt werden.
Fazit
Der Befehl
kill
wird verwendet, um ein Signal an Prozesse zu senden. Das am häufigsten verwendete Signal ist
SIGKILL
oder
-9
, wodurch die angegebenen Prozesse beendet werden.
Explorer.exe in Windows 8/7 / Vista mit 3 Klicks beenden oder beenden
Dieser Beitrag zeigt, wie kill explorer.exe Prozess in Windows 8/7 / Vista in 3 Klicks. Verwenden Sie andernfalls eine Desktopverknüpfung oder das Kontextmenü, um Explorer zu beenden.
Befehl Chgrp unter Linux (Gruppe wechseln)
In Linux ist jede Datei einem Eigentümer und einer Gruppe zugeordnet und verfügt über Berechtigungen, die festlegen, welche Benutzer die Datei lesen, schreiben oder ausführen dürfen. Der Befehl chgrpc ändert die Gruppeneigentümerschaft für bestimmte Dateien.
So beenden Sie einen Prozess unter Linux
In diesem Tutorial zeigen wir Ihnen, wie Sie mit den Befehlen kill, killall und pkill einen Prozess unter Linux beenden.







