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.

147voto

Kop4lyf Punkte 4320

Sie können den Befehl lsof verwenden. Portnummer wie hier ist 8090

lsof -i:8090

Dieser Befehl liefert eine Liste der geöffneten Prozesse auf diesem Port.

So etwas wie...

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssh 75782 eoin 5u IPv6 0x01c1c234 0t0 TCP localhost:8090 (LISTEN)

Um den Port freizugeben, beenden Sie den Prozess, der ihn verwendet (die Prozess-ID ist 75782)...

kill -9 75782

Dies hat bei mir funktioniert. Hier ist der Link zum Originalbeitrag: link

93voto

Mahfuz Punkte 1275

Wenn Sie einen Prozess, der auf Portnummer 8080 läuft, beenden möchten, müssen Sie zunächst die Identifikationsnummer (PID) des 8080er-Portprozesses finden und ihn dann beenden. Führen Sie den folgenden Befehl aus, um die PID der Portnummer 8080 zu finden:

sudo lsof -t -i:8080

Hier,

  • sudo - Befehl, um Admin-Berechtigung (Benutzer-ID und Passwort) anzufordern.
  • lsof - Liste der Dateien (auch für die Auflistung verwandter Prozesse verwendet)
  • -t - zeigt nur die Prozess-ID an
  • -i - zeigt nur internetverwandte Prozesse an
  • :8080 - zeigt nur Prozesse mit dieser Portnummer an

Sie können nun Ihren PID einfach mit dem folgenden Befehl beenden:

sudo kill -9 

Hier,

  • kill - Befehl, um den Prozess zu beenden
  • -9 - gewaltsam

Sie können einen Befehl verwenden, um einen Prozess auf einem bestimmten Port mithilfe des folgenden Befehls zu beenden:

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

Weitere Informationen finden Sie unter folgendem Link Wie man einen Prozess auf einem bestimmten Port unter Linux beendet

83voto

Berkay Kirmizioglu Punkte 1086

Beste Möglichkeit, alle Prozesse an einem bestimmten Port zu beenden;

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

50voto

Brian Peterson Punkte 2805

Dies druckt auf stdout die Prozess-IDs von allem aus, was auf läuft:

fuser -n tcp  

Es druckt auch einige Dinge auf stderr, also:

fuser -n tcp  2> /dev/null

Dann können wir diese Prozess-IDs dem kill Befehl übergeben:

sudo kill $(fuser -n tcp  2> /dev/null)

Sie könnten das auch in eine Funktion packen, wenn Sie das oft machen:

function killport() {
    sudo kill $(fuser -n tcp $1 2> /dev/null)
}

45voto

Sanjay s. Punkte 551

Um die PID des Dienstes zu kennen, der auf einem bestimmten Port läuft :

netstat -tulnap | grep :*port_num*

Sie erhalten eine Beschreibung dieses Prozesses. Verwenden Sie jetzt kill oder kill -9 pid. Leicht getötet.

zum Beispiel

netstat -ap | grep :8080

tcp6       0      0 :::8080       :::*    LISTEN      1880/java 

Jetzt:

kill -9 1880

Vergessen Sie nicht, alle Befehle als root auszuführen

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