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.

2voto

Freewalker Punkte 4797

Unter Verwendung dieses Skripts, das benutzerfreundlicher ist als andere Optionen und überprüft, ob der Port tatsächlich verwendet wird.

Verwendung: openport 1234

openport() {
  # sed = zweite Zeile https://stackoverflow.com/a/1429628/152711
  # awk = zweites Wort https://unix.stackexchange.com/a/174038
  ProzessId=$(lsof -i tcp:$1 | sed -n 2p | awk '{print $2}')
  if [ ! -z "$ProzessId" ] # Nicht-null https://www.cyberciti.biz/faq/bash-shell-find-out-if-a-variable-has-null-value-or-not/
  then
    echo Töte $ProzessId
    kill -9 $ProzessId
  else
    echo Kein Prozess gefunden
  fi
}

2voto

Nishan Punkte 318

Dies hat bei mir auf dem Mac funktioniert

sudo kill -9 $(netstat -vnap tcp | grep PORT | awk -F " " '{print $9}')

1voto

reza_khalafi Punkte 5767

Nur diese Befehle funktionieren für mich:

ps -aux | grep 8000

und dann:

sudo kill

-1voto

Chaklader Punkte 159

In Windows lautet der Befehl netstat -ano | grep "8080" und wir erhalten die folgende Nachricht TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 10076

Wir können den PID mit taskkill /F /PID 10076 beenden

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