So beenden Sie Prozesse mit Linux

Von Zeit zu Zeit bleibt ein Programm hängen, in diesem Fall benötigen Sie eine Methode, um es zu beenden. Linux bietet mehrere Ansätze, um Programme aus der Shell zu erzwingen.

So verwenden Sie den 'killall'-Befehl

Die alle töten Befehl beendet alle Prozesse nach Namen. Das heißt, wenn drei Versionen desselben Programms ausgeführt werden, tötet der Befehl killall alle drei.

Öffnen Sie beispielsweise ein kleines Programm wie einen Bildbetrachter. Öffnen Sie nun eine weitere Kopie desselben Bildbetrachters. Dieses Beispiel verwendet Xviewer, einen Klon von Auge des Gnoms.

Öffnen Sie ein Terminal und geben Sie den folgenden Befehl ein:

killall xviewer

Beide Instanzen des Programms werden geschlossen.

Töte den genauen Prozess

Der Befehl killall kann zu seltsamen Ergebnissen führen. Wenn Sie einen Befehlsnamen haben, der länger als 15 Zeichen ist, funktioniert der Befehl killall nur mit den ersten 15 Zeichen. Wenn Sie also zwei Programme haben, die die gleichen ersten 15 Zeichen haben, werden beide Programme abgebrochen, obwohl Sie nur eines töten wollten.

Um dies zu umgehen, können Sie den folgenden Schalter angeben, der nur Dateien löscht, die genau dem Namen entsprechen.

killall -e

Ignorieren Sie die Groß-/Kleinschreibung beim Beenden von Programmen

Um sicherzustellen, dass der Befehl killall die Groß-/Kleinschreibung des von Ihnen angegebenen Programmnamens ignoriert, verwenden Sie den folgenden Befehl:

killall - ich
killall --ignore-case

Beenden Sie alle Programme in derselben Gruppe

Wenn Sie einen Befehl wie den folgenden ausführen, werden zwei Prozesse erstellt:

ps -ef | weniger

Ein Befehl ist für die ps -ef Teil, der alle laufenden Prozesse auf Ihrem System auflistet, und die Ausgabe wird an die weniger Befehl. Beide Programme gehören zur selben Gruppe, das heißt bash.

Um beide Programme gleichzeitig zu beenden, führen Sie den folgenden Befehl aus:

killall -g

Um beispielsweise alle Befehle zu beenden, die in einer Bash-Shell ausgeführt werden, führen Sie Folgendes aus:

killall -g bash

Um alle laufenden Gruppen aufzulisten, führen Sie den folgenden Befehl aus:

ps -g

Holen Sie sich eine Bestätigung, bevor Sie Programme töten

Offensichtlich ist der Befehl killall ein mächtiger Befehl, und Sie möchten nicht versehentlich die falschen Prozesse beenden.

Wenn Sie den folgenden Schalter verwenden, werden Sie gefragt, ob Sie sicher sind, bevor jeder Prozess beendet wird.

killall -i

Beenden Sie Prozesse, die eine bestimmte Zeit lang ausgeführt wurden

Stellen Sie sich vor, Sie haben ein Programm ausgeführt und es dauert viel länger, als Sie es sich erhofft hatten.

Sie können den Befehl wie folgt beenden:

killall -o h4

Die h im obigen Befehl steht für Stunden – dieser Befehl beendet Prozesse, die vier Stunden oder länger laufen.

Geben Sie einen der folgenden Zeitmeilensteine ​​an:

  • S: Sekunden
  • m: Protokoll
  • h: Std
  • D: Tage
  • w: Wochen
  • m: Monate
  • ja: Jahre

Um Befehle zu beenden, die gerade erst ausgeführt wurden, verwenden Sie alternativ den folgenden Schalter:

killall -y h4

Dieses Mal beendet der Befehl killall alle Programme, die weniger als 4 Stunden lang laufen.

Sagen Sie mir nicht, wenn ein Prozess nicht beendet ist

Wenn Sie versuchen, ein Programm zu beenden, das nicht ausgeführt wird, erhalten Sie standardmäßig die folgende Fehlermeldung:

Programmname: kein Prozess gefunden

Wenn Sie nicht benachrichtigt werden möchten, wenn der Prozess nicht gefunden wurde, verwenden Sie den folgenden Befehl:

killall -q

Reguläre Ausdrücke verwenden

Anstatt den Namen eines Programms oder Befehls anzugeben, geben Sie einen regulären Ausdruck an, damit alle Prozesse, die dem regulären Ausdruck entsprechen, vom Befehl killall geschlossen werden.

Um einen regulären Ausdruck zu verwenden, verwenden Sie den folgenden Befehl:

killall -r 

Kill-Programme für einen bestimmten Benutzer

Um ein Programm zu beenden, das einem bestimmten Benutzer gehört, verwenden Sie die -u Schalter:

killall -u 

Lassen Sie den Programmnamen weg, um alle Prozesse dieses Benutzers zu beenden.

Warten Sie, bis Killall fertig ist

Standardmäßig kehrt killall beim Ausführen zum Terminal zurück, aber Sie können killall zwingen, zu warten, bis alle angegebenen Prozesse geschlossen wurden, bevor Sie zum Terminalfenster zurückkehren.

Führen Sie den folgenden Befehl aus:

killall -w

Wenn das Programm nie stirbt, dann lebt auch killall weiter.