GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So beenden Sie den laufenden Linux-Prozess auf einem bestimmten Port

In Linux haben Prozesse und Ports eine symbiotische Beziehung. Das eine kann ohne das andere nicht existieren oder funktionieren. Prozesse neigen dazu, Ports gemeinsam zu nutzen, und einige Prozesse sind auf einen bestimmten Port angewiesen, um ein Betriebssystemziel zu erreichen.

Dieser Artikelleitfaden gibt Ihnen eine exemplarische Vorgehensweise zum Freigeben eines Ports, der von einem Prozess verwendet wird, um ihn für einen anderen Prozess zu verwenden.

Wie man einen Port mit seinem zugehörigen Prozess auflistet

Wenn Sie einen Zielport und eine Prozess-PID auflisten können , können Sie den damit verbundenen Prozess beenden. Es gibt mehrere Tools, die Sie verwenden können, um aktiv verwendete Ports in Linux aufzulisten.

Eine flexiblere Empfehlung oder Herangehensweise ist der Netzwerkstatistikbefehl (netstat) oder der ss-Befehl (schneller als netstat ). Es ist eine Standardinstallation in den meisten Linux-Distributionen, aber Sie können es mit dem folgenden Befehl installieren, wenn es nicht vorhanden ist.

Installieren Sie Netstat und SS Command unter Linux

$ sudo apt-get install net-tools iproute   [On Debian/Ubuntu & Mint] 
$ sudo dnf install net-tools iproute       [On CentOS/RHEL/Fedora and Rocky Linux/AlmaLinux]
$ pacman -S netstat-nat iproute            [On Arch Linux]
$ emerge sys-apps/net-tools iproute        [On Gentoo]
$ sudo dnf install net-tools iproute       [On Fedora]
$ sudo zypper install net-tools iproute    [On openSUSE]

Um einen Port aufzulisten und herauszufinden, ob er für einen bestimmten Prozess oder Dienst gesperrt ist, halten Sie sich an die folgende Syntaxregel.

$ sudo netstat -ltnp | grep -w ':[targeted_port]'
OR
$ ss -ltnp | grep -w ':[targeted_port]'

Zum Beispiel Prozesse oder Dienste, die auf Port 80 lauschen kann folgendermaßen aufgelistet werden.

$ sudo netstat -ltnp | grep -w ':80'
OR
$ ss -ltnp | grep -w ':80'

Unter der Befehlszeichenfolge “netstat -ltnp “, die Option -p zeigt auf 1520 Dies ist die PID des Prozesses, den Sie beenden möchten. Merken Sie sich das.

Wie man einen Dummy-Prozess unter Linux erstellt

Um das Ökosystem Ihres Linux-Betriebssystems nicht zu beeinträchtigen, erstellen wir einige Dummy-Prozesse und verwenden sie, um das Ziel dieses Artikels zu demonstrieren. Wir verwenden die „socat ” Befehlszeilenprogramm zum Erstellen unserer Demoprozesse.

Lassen Sie uns drei Prozesse unter SCTP haben , TCP und UDP Protokolle bzw. Wir werden diese neuen Prozesse an einen zufälligen Port wie 9999 binden .

Der folgende Befehl generiert einen temporären Prozess mit einer PID (Prozess-ID ) von 8695 .

$ socat sctp-listen:9999,bind=127.0.0.1 stdout &

Der folgende Befehl generiert einen temporären Prozess mit einer PID (Prozess-ID) von 9080 .

$ socat tcp-listen:9999,bind=127.0.0.1 stdout &

Der folgende Befehl generiert einen temporären Prozess mit einer PID (Prozess-ID) von 9270 .

$ socat udp-listen:9999,bind=127.0.0.1 stdout &

Wie man einen Prozess mit seiner PID (Prozess-ID) beendet

Mit dem "kill -9" Befehl können wir einen Prozess loswerden, der eine Portnummer als Geisel hält, die wir für einen anderen priorisierten Prozess verwenden möchten. In diesem Fall haben wir drei Prozesse mit den PIDs 8695 erstellt , 9080 und 9270 .

Um den Prozess unter PID 8695 zu beenden , habe ich den folgenden Befehl ausgeführt:

$ kill -9 8695

Wir können sogar mehr als einen Prozess auf einmal beenden. Um die erstellten Prozesse mit PIDs 9080 zu beenden und 9270 , verwenden Sie einen ähnlichen Befehl wie diesen:

$ kill -9 9080 9270

Ob Sie einen Prozess oder mehr als einen Prozess gleichzeitig beenden, die Ausführung des Kill-Befehls sollte wie oben dargestellt zu einer leeren Terminalinstanz führen.

Um zu bestätigen, dass die Prozesse nicht mehr aktiv sind, werden wir versuchen, den Kill-Befehl erneut auszuführen :

$ kill -9 8695

Eine Fehlermeldung zeigt an, dass der Prozess nicht mehr aktiv ist. Auch die beiden kürzlich beendeten Prozesse [2] 9080 und [3] 9270 werden als nicht mehr aktiv angezeigt.

Schlussbemerkung

Die Regeln zum Beenden eines laufenden Prozesses sind einfach. Identifizieren Sie zunächst den Port, den Sie verwenden möchten, über die „netstat “ oder „ss“ Befehl und notieren Sie sich dann die PID an den Prozess angehängt. Verwenden Sie schließlich die "kill -9" Befehl zusammen mit der identifizierten PID um diesen Prozess loszuwerden.


Linux
  1. So beenden Sie einen Zombie-Prozess unter Linux

  2. So beenden Sie laufende Prozesse in Linux

  3. Wie beendet man einen Prozess, der auf einem bestimmten Port in Linux läuft?

  4. Wie schließe ich die rmiregistry, die auf einem bestimmten Port ausgeführt wird?

  5. Wie man einen Prozess unter Linux anhält/fortsetzt

So listen Sie laufende Prozesse in Linux auf:Ein Leitfaden für Anfänger

So beenden Sie einen Prozess in Linux

Kill-Befehl unter Linux

So beenden Sie Zombie-Prozesse in Linux

So finden und beenden Sie laufende Prozesse in Linux

Wie man einen Prozess unter Linux beendet