Wie man einen Prozess unter Linux tötet

Wie man einen Prozess unter Linux tötet
Jedes Linux -Betriebssystem wird mit dem Kill -Befehl geliefert. Der einzige Zweck dieses Tools besteht darin, einen Zielprozess zu beenden. Es ist ein leistungsstarkes Tool, das Linux sehr vielseitig macht, insbesondere in Server- und Enterprise -Feldern, in denen eine größere Änderung/Aktualisierung wirksam wird, ohne die gesamte Maschine neu zu starten. In diesem Artikel werde ich zeigen, wie man einen Prozess mithilfe der Verwendung tötet töten, Pkill Und alle töten.

Einen Prozess töten

Um einen Prozess zu töten, verwenden wir eine Handvoll Werkzeuge: töten, Pkill, Und alle töten. Alle von ihnen arbeiten im Grunde genommen genauso.

Diese Tools beenden den Prozess nicht selbst. Stattdessen senden sie ein bestimmtes Signal an die Zielprozess- oder Prozessgruppen. Wenn Sie kein bestimmtes Signal angegeben haben, wird Sigterm als Standardsignal gesendet. Es gibt jedoch eine Reihe von unterstützten Signalen, zum Beispiel Sigkill, Seufzer usw.

Hier ist die grundlegende Befehlsstruktur für töten, Pkill Und alle töten.

$ Kill
$ pkill
$ Killall

Wann immer möglich, wird empfohlen, die Verwendung zu verwenden töten.

Töten, Pkill Und alle töten Standorte

Kill ist der Standardbefehl zur Beendigung eines Prozesses.

$ Kill -Help

Es wird aus dem Verzeichnis /USR /Bin ausgeführt.

$ was tötet

Der Vorteil ist, er ermöglicht auch den Zugriff auf PKILL, ein weiterer Befehl, der dem Kill ähnelt, der den Abschlussprozess basierend auf ihrem Namen ermöglicht.

$ pkill -HELP
$ welche pkill

Einige Apps führen mehrere Prozesse derselben ausführbaren Datei aus. Wenn Sie eine Reihe von Prozessen mit demselben Namen beenden möchten, verwenden Sie das Killall -Tool.

$ Killall -HELP
$ was Killall

Auflistung aller laufenden Prozesse

Die allererste Aufgabe ist die Identifizierung der PID (Prozessidentifikationsnummer) und/oder des Prozessnamens, den Sie beenden möchten. In diesem Beispiel werde ich Firefox als Zielprozess zum Beenden verwenden. Führen Sie den folgenden Befehl aus, um alle laufenden Prozesse auf dem System aufzulisten.

$ ps -a

Für die meisten Aufgaben müssen wir die PID des Zielprozesses kennenlernen. In bestimmten Situationen ist die Verwendung des Prozessnamens jedoch besser geeignet.

Wenn Sie den genauen Namen des Zielprozesses kennen, können Sie die PID direkt mithilfe der PID erhalten PIDOF.

$ pidof

Ein weiteres interessantes Tool, um die Informationen zum Zielprozess zu erfassen, ist PGREP. Es wurde speziell für den Zweck entwickelt.

$ pGrep

Signale töten

Schauen wir uns nun die Signale an, die die Kill -Tools unterstützen. Es ist eine riesige Liste. Natürlich sind nicht alle für jede einzelne Situation notwendig. Tatsächlich erfordern die meisten Situationen nur eine Handvoll Signale.

Schauen wir uns zunächst einen Blick auf die Liste, die Kill -Unterstützung unterstützt.

$ Kill -l

Es gibt zwei Möglichkeiten, um zu definieren, welches Signal Sie senden möchten. Sie können entweder den vollständigen Signalnamen oder seinen äquivalenten Wert verwenden.

$ Kill -

Oder,

$ Kill -

Die beliebtesten Signale sind Seufzer (1), Sigkill (9) und Sigterm (15). Im Allgemeinen ist Sigterm die Standard- und sicherste Möglichkeit, einen Zielprozess zu beenden.

Im Fall von PKILL ist das unterstützte Signal das gleiche wie Kill. Im Fall von Killall sind die Anzahl der unterstützten Signale und die Signalnamen jedoch unterschiedlich.

$ Killall -l

Einen Prozess töten

Um einen Prozess abzutöten, brauchen wir die PID dieses Zielprozesses. Unter der Annahme, dass Sie die PID haben, führen Sie den folgenden Befehl aus, um sie zu töten.

$ Kill

Hier sendet Kill das Standardsignal sigterm an die PID (en). Wenn Sie mehrere Prozesse beenden möchten, erwähnen Sie alle PIDs, die durch den Raum getrennt sind.

$ Kill

Lassen Sie uns angeben, welches Signal Sie an das Ziel senden möchten.

Möchte einen Prozess nur mit seinem Namen beenden? Verwenden Sie Pkill.

$ pkill

In einigen Fällen kann eine bestimmte Anwendung zu viele Prozesse ausgeführt werden. Es ist zeitaufwändig und lästig, all diese PIDs zu tippen. In solchen Szenarien werden wir das Killall -Tool verwenden. Es ist Kill ziemlich ähnlich, aber es funktioniert mit dem Prozessnamen.

$ Killall

Zum Beispiel beim Ausführen von Firefox startet es eine Handvoll Prozesse. Um alle gleichzeitig zu töten, führen Sie diesen Befehl aus.

$ Killall Firefox

Sie möchten alle Prozesse kündigen, die unter einem bestimmten Benutzer ausgeführt werden? Killall kann den Job machen, kein Problem. Seien Sie vorsichtig, wenn Sie dieses ausführen, da es das System aufschlüsseln und andere Probleme erstellen kann. Es funktioniert nicht, wenn Sie versuchen, Prozesse zu beenden, die unter einem anderen Benutzer mit höheren Berechtigungen ausgeführt werden.

$ Killall -U

Erlaubniskonflikt

Die inhärenten Eigenschaften der Linux -Benutzerhierarchie gelten auch, wenn Sie eine Anwendung beenden. Ein Benutzer kann keine Prozesse beenden, die mit höheren Berechtigungen ausgeführt werden, nur ein Prozesse mit gleichem/niedrigerem Privileg. Darüber hinaus kann ein Benutzer Prozesse, die unter einem anderen Benutzer ausgeführt werden, nicht manipulieren.

Betrachten wir zum Beispiel den Befehl yes. Wenn es als aktueller Benutzer bezeichnet wird, kann es einfach mit Kill beendet werden.

$ Kill Ja

Was wäre jetzt, wenn Ja lief unter Wurzel? Rufen Sie Kill als aktueller Benutzer nicht zusammen.

Wenn ein Prozess unter einem anderen Benutzer ausgeführt wurde, können Sie ihn in ähnlicher Weise nicht von einem anderen Benutzerkonto enden.

Abschließende Gedanken

In diesem Artikel wurden nur die Grundlagen und die gemeinsame Verwendung dieser Befehle vorgestellt. Diese Kill -Tools sind zu mehr als das in der Lage. Um über die Fähigkeiten eines beliebigen Tools eingehalten zu haben, empfehle ich, die Mannseite zu überprüfen.

$ MAN KILL
$ MAN PKILL

Genießen!