GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So beenden Sie Prozesse in Linux mit kill, killall und pkill

Was ist ein Prozess

Ein Prozess, auch Task genannt, ist die laufende Form eines Programms. Programme werden auf der Festplatte gespeichert und Prozesse im Arbeitsspeicher ausgeführt. Prozesse haben eine Eltern/Kind-Beziehung. Ein Prozess kann ein oder mehrere Kinder hervorbringen. Mehrere Prozesse können parallel laufen.

Systemprozesse auflisten

Der Prozessstatus-Befehl (ps) listet die Prozesse auf, die Ihrer Shell zugeordnet sind.

# ps [options]

Für jeden Prozess zeigt der Befehl ps die PID an , die Terminalkennung (TTY ), die kumulative Ausführungszeit (TIME ) und den Befehlsnamen (CMD ). Listen Sie beispielsweise die derzeit laufenden Prozesse auf dem System mit dem Befehl ps auf.

# ps
  PID TTY          TIME CMD
 1442 pts/1    00:00:00 sudo
 1448 pts/1    00:00:00 su
 1449 pts/1    00:00:00 bash
 1666 pts/1    00:00:00 ps

Der Befehl ps hat mehrere Optionen, mit denen Sie zusätzliche Prozessinformationen anzeigen können.

  • -a :Druckt Informationen zu allen am häufigsten angeforderten Prozessen, mit Ausnahme von Prozessgruppenleitern und Prozessen, die keinem Terminal zugeordnet sind
  • -e :Gibt Informationen über jeden gerade laufenden Prozess aus
  • -f :Erzeugt eine vollständige Auflistung
  • -l :Erzeugt eine lange Liste
  • -o-Format :Schreibt Informationen gemäß der in einem Format angegebenen Formatspezifikation. Es können mehrere -o-Optionen angegeben werden. Die Formatspezifikation wird als die durch Leerzeichen getrennte Verkettung aller Formatoptionsargumente interpretiert.

Alle Prozesse auflisten

Verwenden Sie beispielsweise „ps -ef ‘ Befehl, um alle Prozesse aufzulisten, die derzeit auf dem System ausgeführt werden sollen.

# ps -ef | more

Hier,

  • UID :Der Benutzername des Eigentümers des Prozesses
  • PID :Die eindeutige Prozessidentifikationsnummer des Prozesses
  • PPID :Die übergeordnete Prozessidentifikationsnummer des Prozesses
  • STIME :Die Zeit, zu der der Prozess gestartet wurde (hh:mm:ss)
  • TTY :Das steuernde Terminal für den Prozess. Beachten Sie, dass Systemprozesse (Daemons) ein Fragezeichen (?) anzeigen, das anzeigt, dass der Prozess ohne Verwendung eines Terminals gestartet wurde.
  • ZEIT :Die kumulative Ausführungszeit für den Prozess
  • CMD :Der Befehlsname, Optionen und Argumente

Beenden eines Prozesses

Es kann vorkommen, dass Sie einen unerwünschten Prozess beenden müssen. Ein Prozess könnte in eine Endlosschleife geraten sein oder sich aufgehängt haben. Sie können jeden Prozess, den Sie besitzen, beenden oder stoppen. Sie können die folgenden zwei Befehle verwenden, um einen oder mehrere Prozesse zu beenden:
– kill
– pkill

Die Befehle kill und pkill senden Signale an Prozesse, die sie zum Beenden anweisen. Jedes Signal hat eine Nummer, einen Namen und ein zugeordnetes Ereignis. Nachfolgend finden Sie einige der am häufigsten verwendeten Signale mit ihren Funktionen.

Nummer Name Beschreibung
1 SIGHUP Konfigurationsdatei neu laden
2 SIGNAL Unterbrechen per Tastatur (ctrl+c)
9 SIGKILL Prozess beenden
15 SIGTERM Prozess sofort beenden. (Einen Prozess kontrolliert beenden, damit eine Bereinigung möglich ist)
18 SIGCONT Mit STOP gestoppten Prozess fortsetzen
19 STOPP Prozess stoppen
Hinweis Hinweis:Es gibt jedoch Prozesse, die nicht beendet werden sollten, wie z. B. init Prozess. Das Beenden solcher Prozesse kann zu einem Systemabsturz führen. Ein Superuser kann jeden Prozess im System beenden.

Beenden eines Prozesses mit dem Kill-Befehl

Sie können jeden Prozess beenden, indem Sie das entsprechende Signal an den betreffenden Prozess senden. Der Kill-Befehl sendet standardmäßig Signal 15, das Beendigungssignal. Dieses Signal bewirkt, dass der Prozess ordnungsgemäß beendet wird. Der Kill-Befehl sendet ein Beendigungssignal an einen oder mehrere Prozesse. Die Syntax zur Verwendung des Kill-Befehls lautet wie folgt:

# kill [-signal] PIDs
Hinweis :Der Kill-Befehl beendet nur die Prozesse, die Ihnen gehören. Der Root-Benutzer kann den Kill-Befehl für jeden Prozess verwenden.

Sie müssen die PID des Prozesses kennen, bevor Sie ihn beenden können. Sie können entweder den Befehl ps oder pgrep verwenden, um die PID des Prozesses zu finden. Sie können auch mehrere Prozesse gleichzeitig beenden, indem Sie mehrere PIDs in einer einzigen Befehlszeile eingeben. Sehen wir uns ein Beispiel für den Kill-Befehl an. Wir würden den Prozess „sleep 400“ beenden, wie unten gezeigt.

# ps -ef | grep sleep
root      1337  1218  0 07:33 pts/0    00:00:00 sleep 400
# kill -9 1337
# ps -ef | grep sleep
#

Beenden eines Prozesses mit dem Befehl pkill oder killall

Alternativ können Sie den Befehl pkill oder killall verwenden, um ein Beendigungssignal an Prozesse zu senden.

# pkill [-options] PIDs

oder

# killall [-options] PIDs

Der Befehl pkill/killall erfordert die Angabe des Namens anstelle der PID des Prozesses. Verwenden Sie beispielsweise den Befehl pkill, um den dtmail-Prozess zu beenden.

# pkill dtmail 
# pgrep -l mail
#

Erzwungenes Beenden eines Prozesses:Signal 9

Einige Prozesse ignorieren das Standardsignal 15, das der Kill-Befehl sendet. Wenn ein Prozess nicht auf Signal 15 antwortet, können Sie seine Beendigung erzwingen, indem Sie Signal 9 mit dem Befehl kill oder pkill verwenden.

# kill -9 PID

oder

# pkill -9 process_name
Hinweis :Das Senden von Signal 15 beendet einen Prozess nicht unbedingt ordnungsgemäß. Erst wenn das Signal vom Prozess abgefangen wird, bereinigt es sich in Ordnung und stirbt. Wenn nicht, stirbt es einfach.


Linux
  1. So beenden Sie einen Zombie-Prozess unter Linux

  2. So finden und töten Sie den Zombie-Prozess in Linux

  3. Was sind Zombie-Prozesse und wie findet und tötet man Zombie-Prozesse?

  4. So beenden Sie laufende Prozesse in Linux

  5. Wie beendet man einen Prozess unter Linux mit dem Befehl?

So finden und beenden Sie laufende Prozesse in Linux

So finden und beenden Sie einen Prozess mit einem Linux-Terminal

Wie man einen Prozess unter Linux beendet

Meistern Sie den Linux-Kill-Prozess mit ps, pgrep, pkill und mehr

So töten Sie Zombie-Prozesse in Ubuntu

4 Möglichkeiten, einen Prozess zu beenden – kill, killall, pkill, xkill