1303 Stimmen

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

Ich habe versucht, den Tomcat mit ./shutdown.sh aus dem Tomcat /bin Verzeichnis zu schließen. Aber ich habe festgestellt, dass der Server nicht ordnungsgemäß geschlossen wurde. Und deshalb konnte ich nicht neu starten. Mein Tomcat läuft auf Port 8080.

Ich möchte den Tomcat-Prozess, der auf Port 8080 läuft, beenden. Zuerst möchte ich die Liste der Prozesse haben, die auf einem bestimmten Port (8080) laufen, um auswählen zu können, welchen Prozess ich beenden möchte.

8voto

monica Punkte 1434

Führen Sie einfach diesen Befehl aus. Vergessen Sie nicht, portnumber durch Ihren Port zu ersetzen ;)

  kill -9 $(sudo lsof -t -i:portnumber)

7voto

Harshit Garg Punkte 1899

kill -9 `fuser 8080/tcp|xargs -n 1`, dieses Befehls tötet auch den Prozess, der auf Port 8080 mit TCP-Verbindung lauscht

6voto

Fadid Punkte 1180
sudo apt-get install psmisc (oder sudo yum install psmisc)
sudo fuser 80/tcp

Ergebnis: 80/tcp: 1858 1867 1868 1869 1871

Töte die Prozesse einzeln

töte -9 1858

5voto

Niroshan Ratnayake Punkte 2479

Dies ist die Lösung für Windows:

C:\Users\Niroshan>netstat -ano|findstr "PID :8080"

Proto Lokale Adresse Ausländische Adresse Zustand PID
TCP 0.0.0.0:8080 0.0.0.0:0 HÖREN 18264

taskkill /pid 18264 /f

5voto

Daniel Jonsson Punkte 2615

Ich arbeite an einem Yocto Linux-System, das über einen begrenzten Satz verfügbarer Linux-Tools verfügt. Ich wollte den Prozess beenden, der einen bestimmten Port (1883) verwendet.

Zunächst habe ich mit dem folgenden Befehl überprüft, welche Ports verwendet werden:

root@root:~# netstat -lt
Aktive Internetverbindungen (nur Server)
Proto Empf.-Q Send.-Q Lokale Adresse           Ausländische Adresse         Zustand       
tcp        0      0 0.0.0.0:hostmon         0.0.0.0:*               LISTEN      
tcp        0      0 localhost.localdomain:domain 0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:9080            0.0.0.0:*               LISTEN      
tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN      
tcp        0      0 :::hostmon              :::*                    LISTEN      
tcp        0      0 localhost:domain        :::*                    LISTEN      
tcp        0      0 :::ssh                  :::*                    LISTEN      
tcp        0      0 :::1883                 :::*                    LISTEN      

Als nächstes habe ich den Namen des Prozesses gefunden, der Port 1883 verwendet, auf folgende Weise:

root@root:~# fuser 1883/tcp
290 
root@root:~# ps | grep 290
  290 mosquitt 25508 S    /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
12141 root      8444 S    grep 290

Wie wir oben sehen können, ist es das Programm /usr/sbin/mosquitto, das den Port 1883 verwendet.

Zuletzt habe ich den Prozess beendet:

root@root:~# systemctl stop mosquitto

Ich habe systemctl verwendet, da es sich in diesem Fall um einen systemd-Dienst handelte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X