Startseite > Prozessverwaltung > kill

kill-Befehlsanleitung: Prozesse beenden

`kill`-Befehl wird verwendet, um Signale an laufende Prozesse im Linux-System zu senden und diese zu steuern. Er wird hauptsächlich zum Beenden (kill) von Prozessen verwendet, kann aber auch verwendet werden, um andere Arten von Signalen zu senden, um das Verhalten eines Prozesses zu ändern. Diese Anleitung hilft Ihnen, die grundlegende Verwendung des `kill`-Befehls und die Nutzung verschiedener Signale zu erlernen.

Übersicht über kill

`kill`-Befehl sendet Signale an einen Prozess mit einer bestimmten Prozess-ID (PID). Das häufigste Signal ist das Signal zum Beenden des Prozesses, aber je nach Art des Signals kann der Prozess unterschiedlich reagieren. Zum Beispiel kann er angehalten werden oder dazu aufgefordert werden, die Konfigurationsdatei neu zu laden.

Wichtigkeit der Prozess-ID (PID)

`kill`-Befehl erwartet standardmäßig die PID als Argument. Daher ist es wichtig, die genaue PID des Prozesses, den Sie steuern möchten, zu kennen. Sie können die PID eines Prozesses mit den Befehlen `ps` oder `top` überprüfen.

Hauptfunktionen von kill

  • Prozess beenden: Beendet einen nicht mehr benötigten oder fehlerhaften Prozess gewaltsam oder regulär.
  • Prozess neu starten/neuladen: Sendet ein bestimmtes Signal, um den Prozess zu veranlassen, die Konfigurationsdatei erneut zu lesen oder neu zu starten.
  • Systemressourcen verwalten: Beendet Prozesse, die unnötig viele Ressourcen verbrauchen, um die Systemstabilität zu gewährleisten.

Am häufigsten verwendete Signale

Es gibt viele verschiedene Signale, aber die folgenden beiden werden am häufigsten verwendet:

Hauptsignale

  • **SIGTERM (15, Standard)**: Sendet eine sanfte Aufforderung an den Prozess, sich zu beenden. Der Prozess kann bei Erhalt dieses Signals Aufräumarbeiten durchführen und sich beenden. In den meisten Fällen wird dieses Signal zuerst versucht.
  • **SIGKILL (9)**: Beendet den Prozess sofort gewaltsam. Der Prozess kann dieses Signal nicht ignorieren oder abfangen und wird ohne Möglichkeit zur Aufräumung gewaltsam beendet. Sollte als letzte Möglichkeit verwendet werden.

Wichtige Optionen des kill-Befehls

`kill`-Befehl verwendet die Signalnummer oder den Signalnamen, um Prozesse zu steuern. Wenn ein Signal an einen bestimmten Prozess gesendet wird, muss die PID dieses Prozesses genau angegeben werden.

1. Grundlegende Verwendung

2. Nützliche Signale

3. Alle Signale auflisten

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`kill` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

killall-Befehl (Prozesse nach Name beenden)

`killall`-Befehl sendet Signale an alle Prozesse, die mit einem bestimmten Namen übereinstimmen, anstatt die PID zu verwenden, wie es bei `kill` der Fall ist. Dies ist sehr praktisch, um alle Instanzen einer bestimmten Anwendung zu beenden.

Prozess normal nach Name beenden

killall nginx

Sendet das SIGTERM-Signal an alle Prozesse mit dem Namen `nginx`, um eine normale Beendigung zu beantragen.

Prozess gewaltsam nach Name beenden

killall -9 firefox

Sendet das SIGKILL-Signal an alle Prozesse mit dem Namen `firefox`, um sie sofort gewaltsam zu beenden.

Nur Prozesse eines bestimmten Benutzers beenden

killall -u $(whoami) chrome

Beendet nur die `chrome`-Prozesse des aktuellen Benutzers. Hat keinen Einfluss auf die `chrome`-Prozesse anderer Benutzer.

pkill-Befehl (Prozesse nach Muster beenden)

`pkill`-Befehl beendet Prozesse ähnlich wie `killall` nach Namen, verwendet jedoch reguläre Ausdrucksmuster, um Prozesse zu finden, was flexibler ist. Dies ist nützlich, um Prozesse mit teilweise Übereinstimmungen zu finden oder mehrere verwandte Prozesse auf einmal zu beenden.

Prozess normal nach Muster beenden

pkill http

Sendet das SIGTERM-Signal an alle Prozesse, deren Namen 'http' enthalten. (z. B.: `httpd`, `apache2` usw.)

Prozess gewaltsam nach Muster beenden

pkill -9 mysql

Sendet das SIGKILL-Signal an alle Prozesse, deren Namen 'mysql' enthalten.

Prozesse, die einem bestimmten Benutzer gehören, beenden

pkill -u www-data php-fpm

Beendet alle 'php-fpm'-Prozesse, die dem Benutzer `www-data` gehören.

Beispiele

Lernen Sie, wie Sie die Prozesse des Systems effektiv verwalten, indem Sie verschiedene Anwendungsbeispiele für die Befehle `kill`, `killall` und `pkill` kennenlernen.

Bestimmte Prozess-ID (PID) beenden

kill 12345

Versucht, den Prozess mit der PID `12345` zu beenden, indem das SIGTERM-Signal gesendet wird.

Prozess gewaltsam beenden (PID verwenden)

kill -9 54321

Wenn der Prozess mit der PID `54321` nicht reagiert, wird er mit dem SIGKILL-Signal gewaltsam beendet.

Nginx-Prozess neu laden (SIGHUP verwenden)

sudo kill -1 $(cat /run/nginx.pid)

Findet die Master-Prozess-PID von Nginx und sendet das SIGHUP-Signal, um die Konfigurationsdatei erneut zu lesen. (Die PID des Nginx-Prozesses kann mit `ps aux | grep nginx` überprüft werden)

Alle Chrome-Browser nach Name beenden

killall chrome

Beendet alle laufenden Chrome-Browser-Prozesse normal. (Fenster schließen und ungespeicherte Inhalte können verloren gehen)

Alle Prozesse des Benutzers 'johndoe' beenden

sudo killall -9 -u johndoe

Beendet gewaltsam alle Prozesse, die der Benutzer `johndoe` ausführt. (Administratorrechte erforderlich)

Prozess beenden, der viel CPU verbraucht (Beispiel)

# 1. PID mit top oder htop überprüfen (z. B.: 12345)
# 2. Den entsprechenden PID beenden
kill 12345

Ein typisches Szenario, in dem die PID eines Prozesses, der viel CPU verbraucht, mit `top` oder `htop` überprüft und dann beendet wird.


Gleiche Kategorie Befehle