Wie man einen Laufprozess unter Linux tötet

Wie man einen Laufprozess unter Linux tötet

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
Wie man einen Laufprozess unter Linux tötet

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
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 Ssh 
Holen 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.

Siehe die PID mit Top -Befehl

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 -l 
Eine 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