Wie man einen Laufprozess unter Linux tötet
- 1268
- 10
- Aileen Dylus
Alles, was auf einem Linux -System ausgeführt wird - ein Dienst, ein Skript oder irgendetwas anderes - wird als „Prozess“ angesehen.Wenn Sie einen Laufprozess unter Linux beenden müssen, die töten
Der Befehl wird sicher den Job machen.
In diesem Leitfaden für Linux -Administratoren werden wir die durchgehen töten
Linux -Befehl und wie Sie seine verschiedenen Optionen verwenden, um zu beenden, oder „Kill“ ein laufender Prozess unter Linux.
In diesem Tutorial lernen Sie:
- Wie funktioniert der Kill -Befehlsbefehl??
- Wie man sieht, welche Prozesse ausgeführt werden
- Wie man einen Prozess durch PID tötet
- Wie man einen Prozess tötet, der sich weigert zu schließen
- Wie man einen Prozess mit Namen tötet
Softwareanforderungen und Konventionen verwendet
Kategorie | Anforderungen, Konventionen oder Softwareversion verwendet |
---|---|
System | Ubuntu, Debian, Centos, Rhel, Fedora |
Software | Keiner |
Andere | Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl. |
Konventionen | # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können |
Wie funktioniert der Kill -Befehlsbefehl??
Mit einem Namen wie „Kill“ könnten Sie erwarten, dass dieses Dienstprogramm verwendet wird, um einen Prozess sofort zu beenden. Während das wahr ist, töten
Funktionen nur auf diese Weise, wenn sie mit bestimmten Optionen verwendet werden. Standardmäßig, töten
Wird versuchen, einen Prozess so anmutig wie möglich zu stoppen.
In technischer Hinsicht, töten
sendet a Sigterm Signal auf den angegebenen Prozess, das den Prozess zum Herunterfahren anweist. Es ist eine höfliche Möglichkeit, einen Laufprozess zu beenden, und gibt der Anwendung oder Servicezeit, um die Dinge zuerst abzuschließen - wie das Schreiben in Protokolldateien, die geöffneten Verbindungen schließen, die durch den Prozess hervorgebracht wurden usw.
Das einzige Problem dabei ist, dass ein hartnäckiges Programm das ignorieren kann Sigterm Signal. Dies geschieht insbesondere in einem Prozess, der gefroren oder „aufgehängt ist." Jedoch, töten
Kann verwendet werden, um viele verschiedene Signale an einen Prozess zu senden und sogar die hartnäckigsten zum Schließen mit a zwingen Sigkill Signal. Wir werden diese Optionen im nächsten Abschnitt durchgehen.
Das Wichtigste, was Sie diesen Informationen entfernen müssen, ist, dass Sie nach Möglichkeit ein gewöhnliches Sigterm -Signal an einen Prozess senden sollten, den Sie beenden möchten. Sofort einen Service mit einem töten Sigkill Signal ist jedes Mal wirksam und bietet Ihnen sofortige Ergebnisse, kann jedoch zukünftige Probleme verursachen, da der Prozess keine Chance hatte, ordnungsgemäß abzubauen.
Wie man sieht, welche Prozesse ausgeführt werden
Jedem Prozess in Linux wird eine eindeutige „Prozess -ID“ zugewiesen, die üblicherweise als abgekürzt wird PID im Linux -Terminal. Manchmal ist es notwendig, die PID eines Prozesses zu kennen, um es zu beenden. Verwenden Sie das ps
Befehl:
# ps -e
Dies kann eine Menge Ausgabe erzeugen, da selbst eine frische Installation von Linux einige Laufprozesse haben kann, sodass es normalerweise besser ist, diesen Befehl zu übergeben Grep
oder mehr
.
Für eine überschaubare Ansicht:
# ps -e | Mehr -15
Oder um nach einem bestimmten Prozess zu suchen (SSH in diesem Beispiel):
# ps -e | Grep SshHolen Sie sich die Haltung eines Laufprozesses
Eine weitere praktische Möglichkeit, eine Liste von Laufprozessen und deren PIDs zu sehen, ist mit dem Spitze
Befehl. Manchmal ist dies noch nützlicher, da es auch zeigt, wie viele Systemressourcen von den Prozessen verwendet werden.
Wie man einen Prozess durch PID tötet
Sobald Sie die PID des Prozesses festgelegt haben, den Sie beenden möchten, können Sie ihn als Argument für die angeben töten
Befehl. Zum Beispiel um einen Prozess mit einer PID von 1234 zu beenden:
# Kill 1234
Dieser Befehl sendet a Sigterm Signal und sollte in der Lage sein, die meisten Prozesse innerhalb von ein oder zwei Sekunden abzuschließen. Denken Sie daran, dass Sie die verwenden können ps
Befehl erneut, um zu überprüfen, ob der Prozess erfolgreich geschlossen wurde.
# ps -e | Grep 1234
Wie man einen Prozess tötet, der sich weigert zu schließen
Wenn Sie auf einen hartnäckigen Prozess gestoßen sind, der sich weigert zu schließen, können Sie a ausgeben Sigkill signalisieren mit dem -9
Option auf töten
.
# Kill -9 1234
Denken Sie nur daran, diese Option sparsam zu verwenden, da dies nicht der ideale Weg ist, um einen Prozess zu beenden (aber manchmal muss man).
Normalerweise, Sigterm Und Sigkill sind wahrscheinlich die einzigen beiden Signale, die Sie verwenden müssen, aber es gibt viele andere, die Sie mit dem senden können töten
Befehl. Der folgende Befehl gibt eine vollständige Liste aus:
# Kill -lEine Liste der Signale, die Tötung senden kann
Es ist gut, zumindest die anderen Optionen bewusst zu sein, da einige Programme oder Skripte ihre Verwendung empfehlen können.
Wie Sie in der Ausgabe sehen können, Sigkill ist bei #9 aufgeführt, weshalb der Grund ist -9
Switch sendet die Sigkill Signal. Geben Sie eine andere Nummer an, um ihr jeweiliges Signal an einen Prozess zu senden.
Wie man einen Prozess mit Namen tötet
Es gibt einen schnelleren Weg, um einen Prozess zu beenden, als jedes Mal seine PID nachschlagen zu müssen. Verwenden Sie das Pkill
Befehl und der Name des Prozesses, den Sie töten möchten. Zum Beispiel wie man SSH tötet:
# PKILL SSH
Der Pkill
Der Befehl ist in der Lage, verschiedene Signale zu senden, genau wie der reguläre töten
Befehl:
# PKILL -9 SSH
Mach dir auch keine Sorgen, den genauen Namen des Prozesses zu bekommen. In diesem Befehl tötete ein Prozess namens SSH-Agent, der auf unserem System ausgeführt wurde.
Es gibt einen Nachteil der Verwendung Pkill
anstatt töten
. Sagen Sie, Sie haben zwei SSH-Prozesse, die "SSH-Server" und "SSH-Agent" ausgeführt werden,. Ausgeben des obigen Befehls mit Pkill
wird diese beiden Prozesse beenden, auch wenn Sie nur SSH-Agent beenden wollten.
Es ist auch ein Problem, wenn Sie mehrere Instanzen eines Skripts ausführen, seitdem erzählt wird Pkill
Um dieses Skript zu beenden, wird alle Instanzen des Skripts beendet. Andererseits kann dieses Verhalten manchmal vorzuziehen sein. Wenn Sie die körnigere Kontrolle benötigen, denken Sie daran, sich für die zu entscheiden töten
Befehl stattdessen.
Abschluss
In diesem Artikel haben wir gesehen, wie man jeden Prozess, der auf einem Linux -System ausgeführt wird töten
Befehl. Wir haben gelernt, wie man einen Prozess entweder durch seine PID oder mit Namen tötet, zusammen mit den Vor- und Nachteilen beider Methoden.
Mit Kenntnis der töten
Befehl und die Best Practices für die Verwendung des Gebrauchs haben mehr Kontrolle über die Prozesse, die auf Ihrem System ausgeführt werden. Dies ist besonders praktisch für Programme, die sich „auflegen“ und sich manchmal weigern, manchmal zu schließen.
Verwandte Linux -Tutorials:
- Dinge zu installieren auf Ubuntu 20.04
- Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
- Grundlegende Linux -Befehle
- Wie man ein Signal an Kinderprozesse aus einer Bash verbreitet…
- Linux -Befehle: Top 20 wichtigste Befehle, die Sie benötigen, um…
- Eine Einführung in Linux -Automatisierung, Tools und Techniken
- Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…
- Linux -Download
- Installieren Sie Arch Linux in VMware Workstation
- So drucken Sie den Verzeichnisbaum mit Linux
- « So überprüfen und überwachen Sie die CPU -Auslastung unter Linux
- Wie man Debian 9 auf Debian 10 Buster aufrüstet »