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.

1561voto

nudzo Punkte 16008

Dieser fuser 8080/tcp gibt Ihnen die PID des Prozesses aus, der an diesem Port gebunden ist.

Und dieser fuser -k 8080/tcp wird diesen Prozess beenden.

Funktioniert nur unter Linux. Universeller ist die Verwendung von lsof -i4 (oder 6 für IPv6).

1200voto

Franck Dernoncourt Punkte 68647

Um jeden Prozess aufzulisten, der auf den Port 8080 hört:

lsof -i:8080

Um jeden Prozess zu beenden, der auf den Port 8080 hört:

kill $(lsof -t -i:8080)

oder etwas brutaler:

kill -9 $(lsof -t -i:8080)

(-9 entspricht dem SIGKILL - sofortiges/hartes Beenden Signal: siehe Liste der Kill-Signale und Was ist der Zweck der -9-Option im kill-Befehl?. Wenn kein Signal für kill angegeben ist, wird das TERM-Signal, auch bekannt als -15 oder soft kill, gesendet, was manchmal nicht ausreicht, um einen Prozess zu beenden.).

375voto

veer7 Punkte 17235

Verwenden Sie den Befehl

 sudo netstat -plten |grep java

verwendet grep java als tomcat verwendet java als ihre Prozesse.

Es wird die Liste der Prozesse mit Portnummer und Prozess-ID anzeigen

tcp6       0      0 :::8080                 :::*                    ANHÖREN      
1000       30070621    16085/java

die Zahl vor /java ist eine Prozess-ID. Verwenden Sie jetzt den kill Befehl, um den Prozess zu beenden

kill -9 16085

-9 bedeutet, dass der Prozess gewaltsam beendet wird.

300voto

Gal Bracha Punkte 16362

Option 1 Ein Einzeiler, um nur auf einem bestimmten Port LISTEN zu beenden:

kill -9 $(lsof -t -i:3000 -sTCP:LISTEN)

Option 2 Wenn Sie npm installiert haben, können Sie auch ausführen

npx kill-port 3000

237voto

dlmeetei Punkte 8587

Eine Zeile, ein Zeitersparnis

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

Hier Erklärung: Verwenden Sie eine Kombination von lsof und kill

root@localhost:~# lsof -i tcp:8080
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    23672 sine  238u  IPv6 3028222      0t0  TCP localhost:http-alt (LISTEN)

wählen Sie die pid aus und verwenden Sie kill

kill 23672

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