Gründe, warum Kill in Linux möglicherweise nicht funktioniert, wie man es behebt?

Gründe, warum Kill in Linux möglicherweise nicht funktioniert, wie man es behebt?

Wir alle haben zu einem bestimmten Zeitpunkt ein Einfrieren eines Programms erlebt und nicht reagiert. In solchen Fällen ist das Beenden des Programms und das Neustart eine einfache und effiziente Lösung. In diesem Artikel zeigen wir Ihnen, wie Sie nicht reagierende Prozesse mit dem Kill -Befehl beenden können.

Der Kill -Befehl

Wie bereits erwähnt, benötigen Sie, wenn ein Programm nicht mehr reagiert und Sie es nicht neu starten, eine neue Lösung. Zu diesem Zeitpunkt würden Windows -Benutzer ihren Task -Manager öffnen, um den gefrorenen Prozess zu beseitigen. Es gibt keinen integrierten Task-Manager unter Linux, aber es gibt einen Befehl, mit dem wir den gleichen Effekt wie die Endaufgabenfunktion in Windows erreichen können. Dieser Befehl ist als Kill -Befehl bekannt, und wir können ihn auf verschiedene Weise verwenden, um uns und das System dabei zu unterstützen, korrupte Instanzen loszuwerden.

Töte Syntax

Die Syntax für den Kill -Befehl ist ein einfacher.

$ Kill - [Signal] PID

Hier brauchen zwei Dinge Erklärungen - nämlich Signal und PID. Schauen wir uns beide eins nacheinander an und erfahren, wie sie zur Funktionalität dieses Befehls beitragen.

Der Signalparameter

Erstens ist das Signal. Signale sind einfache Ziffern, die einen Namen darstellen. Der Befehl Kill kann je nach dem von Ihnen bereitgestellten Signal unterschiedliche Aufgaben ausführen. Benutzer können mehr als 60 verschiedene Werte für Signale verwenden, die alle separate, spezifische Aufgaben ausführen. Um all diese Optionen anzuzeigen, können Sie den folgenden Befehl verwenden:

$ Kill -l

Wenn Sie diesen Befehl zum Befehlsterminal von Ubuntu verwenden, erhalten Sie diesen auf Ihrem Bildschirm:

Wie Sie sehen können, gibt es insgesamt 64 Optionen, aus denen Sie auswählen können.

Obwohl es mehr als 60 verschiedene Signale gibt, werden zwei der häufigsten nachstehend beschrieben.

  1. Sigkill (9): Wie der Name schon sagt, tötet dieser Befehl den Prozess vollständig, ohne die Programmdaten zu speichern. Dieser Befehl soll nur als letztes Mittel verwendet werden.
  2. Sigterm (15): Dies erzeugt ein Terminierungssignal, das das Programm auf Sicherheitsgründen schließt. Dies ist auch das Standardsignal.

Die Signale können weiter unten auf 3 verschiedene Arten angegeben werden.

1. Wir können das Signal mit der jeweiligen Ziffer angeben:

$ Kill -9 PID

2. Wir können das Signal mit seinem Namen angeben:

$ Kill -Sigkill PID

3. Wir können das Signal ohne Sig im Namen angeben.

$ Kill -Kill PID

Alle diese Befehle führen die gleiche Aufgabe aus.

Der PID -Parameter

PID ist die Prozessidentifikationsnummer. In Linux- und UNIX-ähnlichen Systemen erhält jeder vom System durchgeführte Prozess eine Prozessidentifikationsnummer (als PID im Folgenden bezeichnet). Um einen Prozess zu töten, muss man seine PID kennen. Um die PID für einen bestimmten Prozess zu finden, können wir die folgenden Befehle verwenden.

$ pidof [Prozessname]
$ pGrep [Prozessname]

Wenn Sie diese beiden Befehle im Befehlsterminal von Ubuntu verwenden, erhalten Sie das folgende Ergebnis.

Verwenden Sie den Befehl Kill

Nachdem Sie die Syntax verstanden haben, können wir den Befehl Kill ausführen. Aus diesem Grund werden wir Tötung auf Thunderbird Mail verwenden - ein vorinstalliertes Programm in Ubuntu. Wir werden zuerst seine PID identifizieren und dann den Prozess mit dem Sigterm Signal beenden.

Öffnen Sie zunächst das Befehlsterminal für Ubuntu. Führen Sie nach Abschluss den folgenden Befehl aus:

$ pGrep Thunderbird

Sie sollten eine ähnliche Ausgabe erhalten, die wir in das Bild unten erhalten haben:

Wie Sie jetzt wissen, führt die PID von Thunderbird Mail den folgenden Befehl aus, um den Prozess zu beenden.

$ Kill -Sigterm 7075

Oder

$ Kill -15 7075

Wenn Sie die Eingabetaste drücken, werden Sie feststellen, dass der Vorgang und sein Fenster nicht mehr existieren. Sie können auch mehrere Prozesse zusammen beenden, indem Sie gleichzeitig die PIDs der Prozesse eingeben.

$ Kill -[Signal] PID1 PID2… PIDN

Darüber hinaus können Benutzer einen Prozess beenden, indem sie sowohl die Befehle Kill- als auch PIDOF/PGREP in derselben Zeile verwenden. Die Syntax für eine solche Anordnung lautet:

$ Kill -[Signal] $ PGREP [Prozessname]

Gründe, warum Kill möglicherweise nicht funktioniert

Wie bereits erwähnt, ist das mit dem Kill -Befehl gesendete Standardsignal sigterm. Sigterm benachrichtigt im Wesentlichen den Prozess, dass es sich aufräumen und beendet werden soll. Dies ist die „schöne“ Art, einen Prozess zu beenden oder zu töten. Bei einigen Prozessen ist es jedoch möglich, dass der schöne Weg es nicht schneidet.

Wenn Sie feststellen, dass der Prozess, den Sie zum Ende befohlen hatten. Wie gesagt, kann dies gelegentlich und mit bestimmten Prozessen passieren.

Um dieses Problem loszuwerden, können Sie das Sigkill -Signal verwenden, um den Prozess vollständig zu beenden. Das Sigkill -Signal ermöglicht es dem System, die Angelegenheit selbst in die Hand zu nehmen. Wenn Sie also eine so klebrige Situation treffen, können Sie immer mit dem Signal Sigkill oder -9 herauskommen.

Es ist wichtig, dass Sie Sigkill sparsam verwenden und wenn Sie eine Situation präsentieren, die Sigterm nicht lösen kann. Sigterm bleibt der Verzug und der sicherste; Daher der beste Weg, um einen Prozess zu beenden.

Der Killall -Befehl

Der Befehl Kill ist sowohl in Linux als auch in anderen UNIX-basierten Betriebssystemen korrigiert, aber der Befehl Killall ist für Benutzer nur für Linux bestimmt. Mit diesem Befehl ermöglicht es dem Benutzer, einen Vorgang mit dem Namen des Prozesses zu beenden. Es besteht keine Notwendigkeit, die PID des Prozesses zu finden. Die Syntax für den Befehl Killall lautet:

$ Killall -[Signal] [Prozessname]

Dieser Befehl kann als nette Alternative dienen, wenn Kill aus irgendeinem Grund auch nach den vorgeschriebenen Lösungen nicht für Sie funktioniert.

Abschluss

Dieser Artikel erfuhr über den Kill -Befehl, seinen Zweck, seine Syntax, die Parameter und seine Verwendung. Darüber hinaus haben wir gesehen, was dazu führen kann, dass der Befehl Kill nicht richtig funktioniert und diese Probleme behebt. Hoffentlich war dies eine informative und interessante Lektüre für Sie, und wir haben alle Probleme, die Sie mit diesem Befehl hatten, gelöst.