Prozess eines Linux-Ports beenden

In Linux sind Prozesse Teil des täglichen Lebens des Systems, da sie es beiden Anwendungen und jedem Dienst ermöglichen, so zu funktionieren, wie es ist.Wenn ein Prozess fehlschlägt, können wir ernsthafte Probleme haben, aber wenn ein Prozess eine Fehlkonfiguration aufweist oder vorübergehende Fehler hat, können wir zentralisierte Fehler im globalen System oder in unseren Tasks finden, jetzt sind viele Prozesse mit einem bestimmten Port für die Zieltasks verbunden, und deshalb kann es bei vielen Gelegenheiten notwendig sein, den Prozess eines Ports zu beenden aus Gründen wie:

 

Gründe für das Beenden des Prozesses

 

  • Geben Sie den Port für eine andere Verwendung frei
  • Blockieren der Anwendung, des Programms oder des Dienstes, die auf diesem Port ausgeführt werden
  • Störungen der Systemleistung

 

 

Es gibt einige Methoden, um den Prozess eines Ports abzuschließen, und TechnoWikis wird zwei davon im Detail erklären.

 

 

Um auf dem Laufenden zu bleiben, denken Sie daran, unseren YouTube-Kanal zu abonnieren!   ABONNIEREN

 

 

1 Beenden Sie den Linux-Portierungsprozess mit SOCAT / KILL

SOCAT ist ein Dienstprogramm, das bidirektionale Datenübertragungen unter Verwendung von zwei unabhängigen Datenkanälen unter Linux ermöglicht. Die Verwendungssyntax lautet wie folgt:

 socat [Optionen] <Adresse 1|> <Adresse 2> 
Kanäle mit sokat
Die Kanäle, die socat verbinden kann, sind:

 

  • Aufzeichnungen
  • Rohre
  • Geräte (seriell, Pseudoterminal)
  • Sockets (UNIX, IP4, IP6 – roh, UDP, TCP)
  • SSL-Sockets
  • GNU-Zeileneditor
  • Programme
  • Proxy-Verbindungen
  • Dateideskriptoren

 

Socat-Dienstprogramme
Obwohl es kein so beliebtes Dienstprogramm ist, kann es uns in Situationen helfen wie:

 

  • TCP-orientierte Programme auf eine serielle Leitung umleiten
  • Verwenden Sie ein IP6-Relais
  • Um als TCP-Port-Weiterleitung zu fungieren
  • Arbeiten Sie als Firewall-Tool

 

 

Socat-Nutzungsoptionen
Die Optionen für die Verwendung von socat unter Linux sind:

 

  • -V: Ermöglicht das Anzeigen der Version und Informationen von Funktionen im Standard-Exit
  • -hh : Alle gängigen Adressoptionsnamen auflisten
  • -d[ddd]: erhöht die Ausführlichkeit oder Lesart des Ergebnisses
  • -D: Analysiert Dateideskriptoren vor der Ausführung
  • -ls: Sende ein Ereignis an stderr
  • -lp<Programm>: definiert das zum Einloggen verwendete Programm
  • -lu: verwendet Mikrosekunden, um Zeitstempel aufzuzeichnen
  • -v – Erstellt einen ausführlichen Text-Dump des Datenverkehrs
  • -lh: fügt den Hostnamen in die Nachricht ein
  • -u: Unidirektionalen Modus von links nach rechts verwenden
  • T<timeout>: ist das gesamte Leerlauf-Timeout in Sekunden
  • -U unidirektionaler Modus von rechts nach links)
  • -g: Optionsgruppen nicht prüfen
  • -4: legt als Präferenz IPv4 fest
  • -6: IPv6 als Präferenz festlegen

 

 

Schritt 1

In diesem Fall verwenden wir Ubuntu, öffnen das Terminal und installieren Socat:

 sudo apt install socat 

1-Beendigung-des-Prozesses-eines-Linux-Ports-mit-SOCAT.png

 

Schritt 2

Für Fedora führen wir aus:

 sudo dnf install socat 
Schritt 3

In Manjaro können wir Folgendes ausführen:

 sudo pacman -S sokat 
Schritt 4

Wir erstellen eine TCP-Verbindung zu einem Port, dazu benötigen wir die Quell- und Zieladresse (wir können STDIN oder STDOUT verwenden) und zusätzlich müssen wir das Protokoll, die IP-Adresse und die Portnummer hinzufügen:

 socat tcp-listen:"port",bind=127.0.0.1 stdout & 

2-Beendigung-des-Prozesses-eines-Linux-Ports-mit-SOCAT.png

 

Schritt 5

In diesem Fall wurde eine Verbindung zwischen einem lauschenden TCP-Socket unter Verwendung von Port 7889 und der Annahme der Loopback-IP-Adresse von 127.0.0.1 mit STDOUT erstellt, wenn wir das „&“-Zeichen hinzufügen, beziehen wir uns darauf, dass es im Hintergrund läuft.

 

Wir erstellen UDP- und SCTP-Verbindungen:

 socat udp-listen:"port",bind=127.0.0.1 stdout & socat sctp-listen:"port",bind=127.0.0.1 stdout & 

3-Beendigung-des-Prozesses-eines-Linux-Ports-mit-SOCAT.png

 

Schritt 6

Damit wurden diese Prozesse auf diesem Port aktiviert, wir werden den KILL-Befehl verwenden, um diesen Prozess zu “beenden” oder zu beenden, zuerst listen wir die Details des Prozesses auf:

 lsof -i tcp:"port" 

4-Beendigung-des-Prozesses-eines-Linux-Ports-mit-SOCAT.png

 

Schritt 7

Unter Berücksichtigung der PID beenden wir den Vorgang mit dem Befehl:

 sudo kill PID 
Schritt 8

Wir geben das Passwort bei Bedarf ein:

 

 

5-Beendigung-des-Prozesses-eines-Linux-Ports-mit-SOCAT.png

 

Schritt 9

Wir bestätigen, dass der Vorgang abgeschlossen ist:

 lsof -i tcp:"port" 

6-Beendigung-des-Prozesses-eines-Linux-Ports-mit-SOCAT.png

 

Schritt 10

Als zusätzlichen Punkt ist es möglich, die Ausgabe von lsof an awk zu leiten und anzugeben, dass nach den Zeilen gesucht werden soll, die den ausgewählten Port enthalten, und das zweite Feld dieser Zeile auszugeben, ohne die PID anzuzeigen, in diesem Fall wird es ausgeführt :

 lsof -i tcp:port | awk '/port/{print $2}' 
Schritt 11

Wir listen nun den SCTP-Prozess auf:

 lsof -i sctp:"port" 
Schritt 12

Wir werden die folgende Nachricht sehen:

 

 

7-Beendigung-des-Prozesses-eines-Linux-Ports-mit-SOCAT.png

 

 

SCTP (Stream Control Transmission Protocol) ist ein Protokoll, das entwickelt wurde, um eine Verbindung zu ermöglichen, um mehrere Datenströme gleichzeitig zwischen zwei Endpunkten zu übertragen. Um dieses Protokoll zu verwalten, verwenden wir den Befehl ss:

 ss-sap 

8-Beendigung-des-Prozesses-eines-Linux-Ports-mit-SOCAT.png

 

Schritt 13

Die verwendeten Parameter waren:

  • -S (SCTP) : Ermöglicht die Suche nach SCTP-Sockets
  • -a (all – all): Ermöglicht die Suche nach allen Arten von Sockets
  • -p (Prozesse): Ermöglicht das Auflisten der Details des Prozesses über den Socket
Schritt 14

Führen Sie nun Folgendes aus:

 

Mit diesem Befehl wurde das Ergebnis von ss mit grep verknüpft und dann wird die Portnummer gesucht, dann wird die Ausgabe von grep mit awk verbunden, dort erzeugt der Parameter -F eine trennende Zeichenfolge, wobei das Komma “,” als Feld fungiert delimiter wird nach einer Zeichenkette mit dem Wert „pid=“ gesucht und dann das zweite Feld ausgegeben.

 ss-Sap | grep "Port" | awk -F',' '/pid=/{print $2}' 

9-Beendigung-des-Prozesses-eines-Linux-Ports-mit-SOCAT.png

 

 

 

2 Prozess eines Linux-Ports mit FUSER beenden

 

Fixieroptionen
Fuser ist ein Befehl zum Identifizieren von Prozessen durch Dateien oder Sockets, indem die PIDs der verknüpften Prozesse angezeigt werden. Einige seiner Verwendungsoptionen sind:

  • -a : Alle angegebenen Dateien anzeigen
  • -F: Ignorierte Fehler
  • -k: Prozesse beenden, die auf die definierte Datei zugreifen
  • -i: gibt dem Benutzer eine Bestätigung, bevor der Prozess beendet wird
  • -m – Gibt die Datei auf einem gemounteten Dateisystem oder Blockgerät an, das zur Verarbeitung gemountet ist
  • -n Leerzeichen: Ermöglicht die Auswahl eines anderen Namensraums
  • -u : Fügen Sie den Benutzernamen des Prozessbesitzers zu jeder PID hinzu

 

 

Schritt 1

Wir öffnen das Terminal und greifen auf Portdetails zu:

 Fixierer -n TCP-Port Fixierer-Port/UDP 

10-Beendigung-des-Prozesses-eines-Linux-Ports-mit-FUSER.png

 

Schritt 2

Wir beenden den Prozess:

 sudo fuser -k Port/Protokoll 

11-Beenden-des-Prozesses-einer-Linux-Portierung-mit-FUSER.png

 

Schritt 3

Wir können in einigen Fällen ein vollständigeres Ergebnis sehen:

 

 

12-Beenden-des-Prozesses-einer-Linux-Portierung-mit-FUSER.png

 

Mit diesen Optionen ist es möglich, Port-Prozesse unter Linux zu beenden.