Startseite > Prozessverwaltung > killall

killall: Prozesse nach Namen beenden

Der Befehl killall sendet ein Signal an alle laufenden Prozesse mit einem bestimmten Namen. Dies ist nützlich, um alle Instanzen einer bestimmten Anwendung oder eines Dienstes auf einmal zu beenden. Standardmäßig wird das SIGTERM-Signal gesendet, aber Sie können auch andere Signale angeben.

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

Gleiche Kategorie Befehle