Ü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.