So beenden Sie einen Linux-Prozess mithilfe einer Portnummer


Sind Sie jemals auf eine Situation gestoßen, in der Sie einen Prozess stoppen mussten, der auf einem bestimmten Port auf Ihrem Linux-Rechner ausgeführt wird?

Sie befürchten möglicherweise, dass sich eine von Ihnen ausgeführte Anwendung schlecht verhält oder Ihre Netzwerkressourcen oder die lokale CPU-Leistung beansprucht. Eine solche Anwendung könnte sogar eine Sicherheitsbedrohung darstellen, die Sie beseitigen möchten.

Was auch immer der Grund ist, Sie können die Befehle fuser,lsofundnetstatvom Terminal aus verwenden (zusammen mit kill), um Ihnen zu helfen, jeden Linux-Prozess mithilfe einer Portnummer zu finden und zu beenden. Diese Befehle funktionieren auf den meisten Linux-Betriebssystemen, einschließlich Ubuntu.

So beenden Sie einen Linux-Prozess mit dem Befehl „fuser“

Eine der einfachsten Möglichkeiten, einen Prozess mithilfe einer Portnummer abzubrechen, ist die Verwendung des Befehls fuser. Diese Linux-Terminalbefehl kann Prozesse auflisten oder beenden, die auf Dateien oder Sockets zugreifen. Wenn eine App mit Netzwerkaktivität ausgeführt wird (und daher einen offenen Port verwendet), führt sie wahrscheinlich eines dieser beiden Dinge aus.

Bevor Sie fortfahren, müssen Sie sicherstellen, dass Sie mit der Verwendung eines Befehlszeilenterminals auf Ihrem Linux-PC vertraut sind.

Um die Prozesse aufzulisten, die eine Portnummer mit fuserverwenden, können Sie die folgende Syntax verwenden:

fuser -n Protokollport

In diesem Beispiel kann protocoltcpoder udpsein, während portdie gewünschte Portnummer ist überprüfen. Um beispielsweise zu sehen, welche Prozesse den TCP-Port 80 verwenden, können Sie Folgendes ausführen:

fuser -n tcp 80

Dadurch werden die Prozess-IDs (PIDs) der Prozesse gedruckt, die diesen Port verwenden.

Um diese Prozesse abzubrechen, können Sie die Option -kzu fuserhinzufügen. Dadurch wird an jeden Prozess ein SIGTERM-Signal gesendet, das ihn auffordert, ordnungsgemäß zu beenden. Zum Beispiel:

fuser -k -n tcp 80

Dadurch werden alle Prozesse beendet, die TCP-Port 80 verwenden.

Wenn einige Prozesse nicht auf SIGTERM reagieren, können Sie -KILLanstelle von -kverwenden. Dadurch wird ein Kill-Signal (SIGKILL) gesendet, das dabei helfen kann, die sofortige Beendigung der aktuell ausgeführten Prozesse, die Sie identifiziert haben, zu erzwingen. Dies kann jedoch zu Datenverlust oder -beschädigung führen. Gehen Sie daher vorsichtig damit um. Zum Beispiel:.

fuser -KILL -n tcp 80

Dadurch werden alle Prozesse, die TCP-Port 80 verwenden, zwangsweise beendet. Wenn Probleme auftreten, führen Sie diese Befehle als Superuser aus (mit dem Befehl sudo) oder indem Sie stattdessen den Root-Benutzerverwenden.

So beenden Sie einen Linux-Prozess mit dem lsof-Befehl

Eine andere Möglichkeit, einen Prozess mithilfe einer Portnummer auf einem Linux-PC abzubrechen, ist die Verwendung des Befehlslsof. Dieser Befehl kann offene Dateien und Sockets auf Ihrem System auflisten.

Um die Prozesse aufzulisten, die eine bestimmte Portnummer verwenden, können Sie die folgende Syntax verwenden:

lsof -i Protokoll:Port

Wie zuvor kann protocoltcpoder udpsein, während portdie gewünschte Portnummer ist überprüfen. Um beispielsweise zu sehen, welche Prozesse den TCP-Port 53 (normalerweise für DNS-Anfragen verwendet) verwenden, können Sie diesen Befehl ausführen:

lsof -i tcp:53

Dadurch werden einige Informationen zu jedem Prozess gedruckt, der diesen Port verwendet, einschließlich seiner PID.

Um diese Prozesse abzubrechen, können Sie die Option-tmitlsofverwenden. Dadurch werden nur die PIDs der Prozesse ohne weitere Informationen gedruckt. Sie können diese Ausgabe dann mit einer beliebigen Signaloption an den Befehl killweiterleiten. Zum Beispiel:

töte $(lsof -t -i tcp:53)

Dadurch werden SIGTERM-Signale (Standardeinstellung) an alle Prozesse gesendet, die TCP-Port 53 verwenden.

Wenn einige Prozesse nicht wie zuvor auf SIGTERM-Signale reagieren, können Sie nach kill-9statt nichts verwenden. Dadurch werden wie zuvor SIGKILL-Signale gesendet, die zum sofortigen Beenden gezwungen werden, aber auch zu Datenverlust oder -beschädigung führen können. Zum Beispiel:

kill -9 $(lsof -t -i tcp:53)

Dadurch werden SIGKILL-Signale (Standardeinstellung) zwangsweise an alle Prozesse gesendet, die TCP-Port 53 verwenden.

So beenden Sie einen Linux-Prozess mit dem Befehl „netstat“

Sie können auch den Befehl netstatverwenden, um laufende Prozesse auf Ihrem Linux-PC mithilfe aktiver und offener Netzwerkports aufzuspüren. Mit netstat können Sie Netzwerkverbindungen und Statistiken auf Ihrem System anzeigen und so problematische Prozesse lokalisieren.

Um die Prozesse mithilfe einer Portnummer zusammen mit ihren PIDs aufzulisten, müssen Sie zwei Optionen hinzufügen: -p, das PIDs anzeigt, und -l, das zeigt Nur Abhörbuchsen..

Sie müssen außerdem das Protokoll (TCP, UDP usw.) angeben und optional nach Status filtern (LISTEN usw.). Um beispielsweise zu sehen, welche TCP-Prozesse an welchen Ports lauschen, können Sie Folgendes ausführen:

netstat -p tcp -l

Dadurch werden Informationen zu jedem TCP-Socket gedruckt, der alle Ports überwacht, einschließlich seiner PID.

Um nach bestimmten Ports zu filtern, müssen Sie eine weitere Option hinzufügen: -n, die numerische Adressen anstelle von Namen anzeigt. Sie müssen auch das genaue Adressformat angeben: [protocol][@hostname|hostaddr][:service|port].

Um beispielsweise zu sehen, welche TCP-Prozesse Port 80 überwachen, können Sie Folgendes ausführen:

netstat -p tcp -l -n 80

Dadurch werden Informationen zu jedem TCP-Socket gedruckt, der Port 8080 überwacht, einschließlich seiner PID.

Um diese Prozesse abzubrechen, können Sie den Befehl killmit jeder gewünschten Signaloption und den PIDs verwenden, die Sie von netstat erhalten haben. Zum Beispiel:

töte 1234 5678

Dadurch werden SIGTERM-Signale (Standardeinstellung) an Prozesse mit den PIDs 1234und 5678gesendet.

Wenn einige Prozesse nicht wie zuvor auf SIGTERM-Signale reagieren, können Sie nach kill-9statt nichts verwenden. Dadurch werden wie zuvor SIGKILL-Signale gesendet, die zu einer sofortigen Beendigung gezwungen werden, aber wie zuvor zu Datenverlust oder -beschädigung führen können. Zum Beispiel:

töte -9 1234 5678

Dadurch werden SIGKILL-Signale beispielsweise zwangsweise an Prozesse mit den PIDs 1234und 5678gesendet. Ersetzen Sie 1234durch die richtige PID für Ihren laufenden Prozess.

Kontrollieren Sie Ihre Linux-Anwendungen

Dank der oben beschriebenen Schritte können Sie einen laufenden Linux-Prozess mithilfe einer Portnummer über die Linux-Befehlszeile schnell beenden. Denken Sie daran, beim Beenden von Prozessen Vorsicht walten zu lassen, insbesondere bei SIGKILL-Signalen, da diese unerwünschte Nebenwirkungen verursachen können – Sie möchten schließlich keine Systeminstabilität verursachen.

Möchten Sie sich die Leistung Ihres Systems unter Linux genauer ansehen? Möglicherweise möchten Sie als Nächstes Überprüfen Sie Ihre Speichernutzung unter Linux ausführen. Wenn Sie sich Sorgen über ein potenzielles Sicherheitsrisiko machen, sollten Sie auch Ändern Sie Ihr Passwort unter Linux tun.

Müssen Sie auf eine neue Linux-Distribution umsteigen? Für Anfänger ist Betrachten Sie Linux Mint eine sichere und stabile Alternative..

.

Zusammenhängende Posts:


2.04.2023