Übersicht
killall ist ein leistungsstarkes Werkzeug, mit dem Sie mehrere Prozesse anhand ihres Namens anstelle ihrer Prozess-ID (PID) auf einmal beenden können. Da alle Instanzen mit demselben Namen angesprochen werden, ist dies besonders praktisch, wenn Sie alle Fenster oder Hintergrunddienste einer bestimmten Anwendung beenden möchten.
Hauptmerkmale
- Beenden basierend auf dem Prozessnamen
- Unterstützung für das Senden verschiedener Signale (Standard SIGTERM)
- Kann nach verschiedenen Kriterien wie Benutzer, Zeit usw. gefiltert werden
- Verarbeitet mehrere Instanzen gleichzeitig
Wichtige Optionen
Der Befehl killall bietet verschiedene Optionen, um die Art und Weise und das Ziel des Prozessbeendens fein abzustimmen.
Standardverhalten und Signale
Prozessfilterung
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`killall` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Verschiedene Anwendungsbeispiele für den Befehl killall.
Alle Prozesse mit einem bestimmten Namen beenden
killall firefox
Beendet alle Instanzen des Firefox-Webbrowsers. Sendet das Standardsignal SIGTERM (Anforderung zur ordnungsgemäßen Beendigung).
Erzwungenes Beenden mit einem bestimmten Signal
killall -s SIGKILL chrome
Beendet alle Instanzen des Chrome-Webbrowsers mit dem Signal SIGKILL (erzwungenes Beenden). Dieses Signal gibt dem Prozess keine Möglichkeit, Bereinigungsarbeiten durchzuführen, daher sollte es mit Vorsicht verwendet werden.
Beenden im interaktiven Modus
killall -i sshd
Fordert den Benutzer zur Bestätigung für jede Instanz auf, bevor der sshd-Prozess (SSH-Daemon) beendet wird. Durch Eingabe von 'y' wird er beendet.
Beenden von Prozessen eines bestimmten Benutzers
killall -u user1
Beendet alle von Benutzer 'user1' ausgeführten Prozesse.
Auf Prozessbeendigung warten
killall -w myapp
Der Befehl wartet, bis der aktuell ausgeführte 'myapp'-Prozess vollständig beendet ist.
Installation
Der Befehl killall ist auf den meisten Linux-Distributionen standardmäßig als Teil des Pakets 'psmisc' installiert. Wenn er auf Ihrem System nicht installiert ist, können Sie ihn mit den folgenden Befehlen installieren.
Debian/Ubuntu
sudo apt update && sudo apt install psmisc
Installiert das Paket psmisc mit dem APT-Paketmanager.
CentOS/RHEL/Fedora
sudo yum install psmisc
# oder
sudo dnf install psmisc
Installiert das Paket psmisc mit dem YUM- oder DNF-Paketmanager.
Tipps & Vorsichtsmaßnahmen
Nützliche Tipps und Vorsichtsmaßnahmen bei der Verwendung des Befehls killall.
Vorsicht bei der Verwendung von SIGKILL (-9)
SIGKILL (Signalnummer 9) beendet einen Prozess sofort und erzwingt das Beenden, ohne dem Prozess die Möglichkeit zu geben, geöffnete Dateien oder Daten zu bereinigen. Dies kann zu Datenverlust oder Systeminstabilität führen. Daher sollten Sie zuerst andere Signale (z. B. SIGTERM) versuchen und SIGKILL nur als letztes Mittel verwenden, wenn diese fehlschlagen.
- **Verwenden Sie zuerst SIGTERM (Standard)**: Die meisten Anwendungen werden ordnungsgemäß beendet, wenn sie SIGTERM empfangen.
- **Verwenden Sie SIGKILL als letztes Mittel**: Nur verwenden, wenn der Prozess nicht reagiert.
Überprüfen Sie den genauen Prozessnamen
killall verwendet den genauen Prozessnamen. Es ist ratsam, den genauen Namen des zu beendenden Prozesses mit dem Befehl `ps aux | grep <Prozessname>` zu überprüfen.
- Beispiel: `ps aux | grep firefox`
Unterschied zwischen killall und pkill
`killall` basiert auf dem genauen Prozessnamen, während `pkill` reguläre Ausdrücke verwenden kann, um Prozessnamen abzugleichen, was eine flexiblere Suche und Beendigung ermöglicht.
- `killall`: Exakter Namensabgleich (z. B. `killall firefox`)
- `pkill`: Abgleich mit regulären Ausdrücken (z. B. `pkill -f 'firef[o]x'`)
- `pkill` erweitert die Funktionalität des `kill`-Befehls, ohne dass eine PID direkt angegeben werden muss.
Vorsicht beim Beenden von Systemprozessen
Das Beenden wichtiger Systemprozesse mit `killall` kann zu Systeminstabilität oder Abstürzen führen. Seien Sie besonders vorsichtig, wenn Sie dies mit `root`-Berechtigungen tun.
- Beispiel: Führen Sie niemals `killall systemd`, `killall init` usw. aus.