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?

Möglicherweise sind Sie besorgt, dass eine Anwendung, die Sie ausführen, sich schlecht verhält oder Ihre Netzwerkressourcen oder die lokale CPU-Leistung in Beschlag nimmt. Eine solche Anwendung könnte sogar eine Sicherheitsbedrohung darstellen, die Sie beseitigen möchten.

Inhaltsverzeichnis

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

Wie man einen Linux-Prozess mit dem Befehl fuser beendet

Eine der einfachsten Möglichkeiten, einen Prozess mit einer Portnummer zu beenden, ist die Verwendung der Fuser-Befehl. Dieser 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), tut sie wahrscheinlich eines dieser beiden Dinge.

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 Fuser verwenden, können Sie die folgende Syntax verwenden:

fuser-n Protokollport

In diesem Beispiel kann das Protokoll tcp oder udp sein, während port die Portnummer ist, die Sie überprüfen möchten. Um beispielsweise zu sehen, welche Prozesse TCP-Port 80 verwenden, können Sie Folgendes ausführen:

fuser-n tcp 80

Dies gibt die Prozess-IDs (PIDs) der Prozesse aus, die diesen verwenden Hafen.

Um diese Prozesse zu beenden, können Sie die Option-k zu fuser hinzufügen. Dies sendet ein SIGTERM-Signal an jeden Prozess und fordert ihn auf, sich ordnungsgemäß zu beenden. Zum Beispiel:

fuser-k-n tcp 80

Dies beendet alle Prozesse, die TCP-Port 80 verwenden.

Wenn einige Prozesse nicht auf SIGTERM reagieren , können Sie-KILL anstelle von-k verwenden. Dadurch wird ein Kill-Signal (SIGKILL) gesendet, das dazu beitragen kann, dass die aktuell laufenden Prozesse, die Sie identifiziert haben, sofort beendet werden. Dies kann jedoch zu Datenverlust oder-beschädigung führen, verwenden Sie es also mit Vorsicht. Zum Beispiel:

fuser-KILL-n tcp 80

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

Wie man einen Linux-Prozess mit dem lsof-Befehl beendet

Eine andere Möglichkeit, einen Prozess mit einer Portnummer auf einem Linux-PC zu beenden, ist die Verwendung des lsof-Befehls. Dieser Befehl kann geöffnete 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 protocol:port

Wie zuvor kann das Protokoll tcp oder udp sein, während port die Portnummer ist, die Sie überprüfen möchten. Um beispielsweise zu sehen, welche Prozesse TCP-Port 53 verwenden (normalerweise für DNS-Anfragen verwendet), können Sie diesen Befehl ausführen:

lsof-i tcp:53

Dadurch werden einige ausgegeben Informationen über jeden Prozess, der diesen Port verwendet, einschließlich seiner PID.

Um diese Prozesse zu beenden, können Sie die Option-t mit lsof verwenden. Dadurch werden nur die PIDs der Prozesse ohne weitere Informationen gedruckt. Sie können diese Ausgabe dann mit einer beliebigen Signaloption an den Kill-Befehl weiterleiten. Zum Beispiel:

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

Dies sendet SIGTERM-Signale (Standardeinstellung) an alle Prozesse, die TCP-Port 53 verwenden.

Wenn einige Prozesse nicht wie zuvor auf SIGTERM-Signale reagieren, können Sie nach kill-9 anstelle von nichts verwenden. Dies sendet wie zuvor SIGKILL-Signale und zwingt sie zur sofortigen Beendigung, kann aber auch zu Datenverlust oder-beschädigung führen. Zum Beispiel:

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

Dies wird zwangsweise SIGKILL-Signale (Standardeinstellung) an alle Prozesse senden, die TCP-Port 53 verwenden.

Wie man einen Linux-Prozess mit dem netstat-Befehl beendet

Sie können auch den netstat-Befehl verwenden, um laufende Prozesse auf Ihrem Linux-PC mit aktiven und offenen Netzwerkports aufzuspüren. Mit netstat können Sie Netzwerkverbindungen und Statistiken auf Ihrem System anzeigen und so problematische Prozesse lokalisieren.

Um die Prozesse aufzulisten, die eine Portnummer zusammen mit ihren PIDs verwenden, müssen Sie zwei Optionen hinzufügen:-p, das PIDs anzeigt, und-l, das nur lauschende Sockets anzeigt.

Sie müssen auch das Protokoll angeben (tcp, udp usw.) und optional nach Status filtern (LISTEN usw.). Um zum Beispiel zu sehen, welche TCP-Prozesse auf irgendwelchen Ports lauschen, können Sie Folgendes ausführen:

netstat-p tcp-l

Dies gibt Informationen über jeden TCP-Socket aus, der auf irgendwelchen Ports lauscht , 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. Außerdem müssen Sie das genaue Adressformat angeben: [Protokoll][@hostname|hostaddr][:service|port].

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

netstat-p tcp-l-n 80

Das wird gibt Informationen über jeden TCP-Socket aus, der Port 8080 überwacht, einschließlich seiner PID.

Um diese Prozesse zu beenden, können Sie den kill-Befehl mit jeder gewünschten Signaloption und den von netstat erhaltenen PIDs verwenden. Zum Beispiel:

kill 1234 5678

Dies sendet SIGTERM-Signale (Standardeinstellung) an Prozesse mit den PIDs 1234 und 5678.

Wenn einige Prozesse dies nicht tun wie zuvor auf SIGTERM-Signale reagieren, können Sie nach kill-9 anstelle von nichts verwenden. Dies sendet wie zuvor SIGKILL-Signale und zwingt sie zur sofortigen Beendigung, kann aber wie zuvor zu Datenverlust oder-beschädigung führen. Zum Beispiel:

kill-9 1234 5678

Dies sendet zum Beispiel zwangsweise SIGKILL-Signale an Prozesse mit den PIDs 1234 und 5678. Ersetzen Sie 1234 durch die richtige PID für Ihren laufenden Prozess.

Kontrollieren Sie Ihre Linux-Anwendungen

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

Möchten Sie sich Ihre Systemleistung unter Linux genauer ansehen? Vielleicht möchten Sie als nächstes Ihre Speichernutzung unter Linux überprüfen. Wenn Sie sich Sorgen über ein potenzielles Sicherheitsrisiko machen, möchten Sie vielleicht auch Ihr Passwort unter Linux ändern.

Müssen Sie zu einer neuen Linux-Distribution wechseln? Wenn Sie ein Anfänger sind, betrachten Sie Linux Mint als sichere und stabile Alternative.

Categories: IT Info