Von Linux-Foren bis hin zu Linux-Memes werden Sie auf zwei Befehle stoßen, um das Beenden von Programmen in Linux zu erzwingen; kill und killall.
Während viele Linux-Benutzer den Befehl kill kennen, kennen und verwenden nicht viele den Befehl killall.
Und es könnte für die Leute sowieso verwirrend sein. Beide Befehle haben einen ähnlich klingenden Namen und einen ähnlichen Zweck (um Prozesse zu beenden).
Also, was ist der Unterschied zwischen kill und killall? Welchen Befehl sollten Sie verwenden und in welchem Fall sollten Sie sie verwenden?
Unterschied zwischen kill- und killall-Befehlen
Der Kill-Befehl arbeitet mit der Prozess-ID (PID) und beendet die Prozesse, für die Sie die PIDs bereitstellen. Andererseits arbeitet der Befehl killall mit dem Prozessnamen und beendet alle Prozesse mit den angegebenen Prozessnamen. Zum Beispiel, wenn es drei Instanzen von mysqld
gibt läuft, wird killall alle drei mit killall mysqld
töten während Sie die PIDs aller drei Instanzen angeben müssen, um den Befehl als kill PID1 PID2 PID3
zu beenden .
Einfacher ausgedrückt, der Befehl kill arbeitet mit PID (häufig individuelle PID) und der Befehl killall arbeitet mit dem Prozessnamen und beendet alle Prozesse mit dem Prozessnamen.
Lassen Sie mich das in Aktion zeigen.
Ich starte drei Instanzen eines Programms namens evince und schicke es in den Hintergrund (es läuft weiter, gibt aber die Kontrolle an das Terminal zurück).
evince &
evince &
evince &
Jetzt laufen drei Programme mit dem Prozessnamen evince, aber mit unterschiedlichen Prozess-IDs.
Um das Beenden des Prozesses mit dem Kill-Befehl zu erzwingen, müssen Sie die PIDs der gewünschten Prozesse angeben.
kill PID1
Geben Sie jedoch den Prozessnamen an den killall-Befehl an und er wird alle laufenden Instanzen mit diesen Prozessnamen beenden.
killall evince
Werfen Sie einen Blick auf den Screenshot unten, um alle Befehle in Aktion zu sehen:
Wie Sie hier sehen können, müssen Sie die Prozess-ID für den Kill-Befehl kennen und den Prozessnamen für den Killall-Befehl finden.
Welches solltest du verwenden? Kill oder Killall?
Da der Kill-Befehl mit einzelnen Prozessen arbeitet, ist er sicherer. Schließlich sollten Sie vor dem Ausführen des killall-Befehls sicherstellen, dass keine ähnlich benannten Prozesse laufen, die Sie nicht beenden möchten.
Ich hoffe, Sie haben jetzt ein klares Bild von den Befehlen kill und killalll. Fühlen Sie sich frei, eine Frage oder einen Vorschlag zu hinterlassen.