Website-Suche

So beenden Sie einen Linux-Prozess mit Kill, Pkill und Killall


Unter Linux bedeutet das Beenden eines Prozesses das Beenden oder Anhalten der Ausführung eines laufenden Programms. Jedem laufenden Prozess wird eine eindeutige Identifikationsnummer zugewiesen, die als Prozess-ID (PID) bekannt ist und dem System dabei hilft, den Überblick über aktuell aktive Prozesse zu behalten.

In diesem Artikel erfahren Sie mehr über den Linux-Kill-Prozess und wie Sie einen Prozess mithilfe verschiedener Tools und Befehle in Linux finden und beenden.

Was ist der Linux-Prozess?

Vereinfacht ausgedrückt ist ein Prozess wie ein Programm, das gerade auf einem System ausgeführt wird, und jeder Prozess hat seine eigene spezielle ID (PID). Manchmal kann es jedoch vorkommen, dass sich ein laufendes Programm oder ein laufender Prozess schlecht verhält, nicht mehr reagiert oder zu viele Systemressourcen beansprucht.

Wenn das passiert, müssen wir den Prozess stoppen oder „killen“ und hier kommt der Befehl „kill“ zum Einsatz.

Was ist Kill Command?

Der Befehl „kill“ ist ein wichtiges Dienstprogramm, das es Benutzern ermöglicht, Signale (Stoppen oder Beenden) an aktuell laufende Prozesse zu senden und sie anzuweisen, ordnungsgemäß zu beenden oder gewaltsam zu beenden.

Der Kill-Befehl ist nützlich, wenn Sie die Aktivitäten verschiedener Programme auf Ihrem Linux-System verwalten und steuern müssen, wie zum Beispiel:

  • Um jeden automatisierten Prozess zu stoppen.
  • Um einen Prozess zu stoppen, der versehentlich gestartet wurde.
  • Um einen Prozess zu stoppen, der zu viel Speicher verbraucht.
  • Um jeden laufenden Prozess unter Linux zwangsweise zu beenden.
  • Um einen im Hintergrund laufenden Prozess zu stoppen.

Die Verwendung des Befehls kill aus /usr/bin bietet Ihnen einige zusätzliche Funktionen zum Beenden eines Prozesses anhand des Prozessnamens mithilfe von pkill, das Prozesse anhand identifiziert ihre Namen.

So finden Sie die Prozess-ID oder den Prozessnamen

Bevor Sie einen laufenden Prozess beenden, ist es wichtig, seine Prozess-ID (PID) oder seinen Namen mit dem folgenden ps-Befehl zu identifizieren, der Informationen über alle laufenden Prozesse auf dem System mit ihrer PID (Prozess-ID) und anderen Informationen anzeigt.

ps -ef

Wenn Sie einen bestimmten Prozessnamen PID finden möchten, können Sie einen grep-Befehl verwenden, der alle auf dem System laufenden Prozesse auflistet und die Ergebnisse so filtert, dass nur diejenigen angezeigt werden, die den Begriff „mariadb<“ enthalten“.

ps -ef | grep mariadb

Alternativ können Sie die PID eines Prozesses direkt anhand des Namens ermitteln, indem Sie den Befehl pgrep verwenden (siehe Abbildung).

pgrep mariadb

So beenden Sie einen Prozess unter Linux

Bevor Sie einen Prozess beenden, stoppen oder beenden, denken Sie über Berechtigungen nach. Wenn Sie ein Root-Benutzer sind, können Sie jeden Prozess stoppen. Wenn Sie jedoch ein normaler Benutzer sind, müssen Sie vor dem Befehl ein „sudo“ hinzufügen oder mit „“ zu einem Root-Benutzer wechseln su“, um den Beendigungsbefehl zu verwenden.

Die allgemeine Syntax für den Kill-Befehl lautet:

kill [signal or option] PID(s)
OR
sudo kill [signal or option] PID(s)

Für einen Kill-Befehl könnte ein Signalname sein:

Aus dem obigen Verhalten geht klar hervor:

  • SIGTERM ist die standardmäßige und sicherste Methode, einen Prozess abzubrechen.
  • SIGHUP ist eine weniger sichere Methode zum Beenden eines Prozesses als SIGTERM.
  • SIGKILL ist die unsicherste der drei oben genannten Methoden, um einen Prozess abzubrechen, der einen Prozess beendet, ohne ihn zu speichern.

Unter Linux gibt es verschiedene Signale, mit denen Sie Prozesse stoppen, beenden oder anhalten können. Mit dem folgenden Befehl können Sie alle verfügbaren Kill-Signale mit ihren Namen und den entsprechenden Nummern auflisten

kill -l

Es sind zwar mehrere Signale verfügbar, aber in den meisten Fällen verwenden wir nur SIGKILL (9) und SIGTERM (15).

Um einen Prozess zu beenden, müssen wir die Prozess-ID eines Prozesses kennen. Ein Prozess ist eine Instanz eines Programms. Jedes Mal, wenn ein Programm startet, wird automatisch eine eindeutige PID für diesen Prozess generiert.

Jeder Prozess in Linux hat eine pid. Der erste Prozess, der beim Booten des Linux-Systems startet, ist der – init-Prozess, daher wird ihm in den meisten Fällen der Wert „1“ zugewiesen.

Init ist der Master-Prozess und kann auf diese Weise nicht beendet werden, wodurch sichergestellt wird, dass der Master-Prozess nicht versehentlich beendet wird. Init entscheidet und lässt sich töten, wobei kill lediglich eine Aufforderung zum Herunterfahren ist.

Bevor wir einen Schritt weitergehen und einen Kill-Befehl ausführen, sollten einige wichtige Punkte beachtet werden:

  • Ein Benutzer kann alle seine Prozesse beenden.
  • Ein Benutzer kann den Prozess eines anderen Benutzers nicht beenden.
  • Ein Benutzer kann keine vom System verwendeten Prozesse beenden.
  • Ein Root-Benutzer kann den Prozess auf Systemebene und den Prozess eines beliebigen Benutzers beenden.

Um den mariadb-Prozess PID zu beenden, verwenden Sie den Befehl kill wie gezeigt.

kill -9 3383

Der obige Befehl beendet den Prozess mit pid=3383, wobei PID ein numerischer Wert des Prozesses ist.

Eine andere Möglichkeit, dieselbe Funktion auszuführen, kann umgeschrieben werden als.

kill -SIGTERM 3383

Ebenso ist „kill -9 PID“ ähnlich zu „kill -SIGKILL PID“ und umgekehrt.

Um zu bestätigen, dass der Prozess beendet wurde, können Sie erneut den ps-Befehl verwenden.

ps -ef | grep mariadb

So beenden Sie mehrere Prozesse unter Linux

Um mehrere Prozesse unter Linux mithilfe ihrer Prozess-IDs (PIDs) zu beenden, können Sie den Befehl kill in Kombination mit den entsprechenden PID-Nummern verwenden.

Identifizieren Sie zunächst die PIDs der Prozesse, die Sie beenden möchten, indem Sie den Befehl ps oder pgrep verwenden.

ps aux | grep apache2
OR
pgrep apache2

Sobald Sie die PIDs haben, verwenden Sie den Befehl kill, um sie zu beenden.

kill -9 PID1 PID2 PID3

So beenden Sie einen Prozess unter Linux mithilfe des Prozessnamens

Um einen Prozess mithilfe des Prozessnamens zu beenden, verwenden wir den Befehl pkill, eine Version des Befehls kill, mit der Sie den Prozessnamen oder ein Muster angeben können einen Prozess lokalisieren.

Sie müssen den Prozessnamen kennen, bevor Sie ihn beenden, und die Eingabe eines falschen Prozessnamens kann Sie verarschen.

pkill mysqld

Was passiert, wenn ein Prozess zu viele Instanzen und mehrere untergeordnete Prozesse hat? Wir haben den Befehl „killall“, der den Prozessnamen als Argument anstelle der Prozessnummer verwendet.

So beenden Sie einen Prozess unter Linux mit dem Killall-Befehl

Der Hauptunterschied zwischen killall und kill besteht darin, dass killall einen Prozess anhand seines Namens beenden kann, während der Kill-Befehl auf der Prozess-ID (pid) basiert.

Um alle MySQL-Instanzen zusammen mit untergeordneten Prozessen zu beenden, verwenden Sie den folgenden Befehl.

killall mysqld
OR
pkill mysqld

Sie können jederzeit den Status des Prozesses überprüfen, ob er ausgeführt wird oder nicht, indem Sie einen der folgenden Befehle verwenden.

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

Tools zur Überwachung grafischer Linux-Systeme wie htop oder gnome-system-monitor bieten eine benutzerfreundliche Oberfläche zum Suchen und Beenden von Prozessen.

Abschluss

Das war's vorerst von mir. Ich melde mich bald mit einem weiteren interessanten und informativen Thema zurück. Bleiben Sie bis dahin auf dem Laufenden und bleiben Sie mit Tecmint in Verbindung und kümmern Sie sich um Ihre Gesundheit. Vergessen Sie nicht, Ihr wertvolles Feedback im Kommentarbereich mitzuteilen.