Wie entferne ich den aktuellen Prozess/die Anwendung, die bereits einem Port zugewiesen ist?
Zum Beispiel: localhost:8080
Schritt 1
Führen Sie die Befehlszeile als Administrator aus. Führen Sie dann den unten genannten Befehl aus. Geben Sie Ihre Portnummer in yourPortNumber ein.
netstat -ano | findstr: yourPortNumber
Rot umrandete Fläche zeigt die PID (Prozesskennung)
Schritt 2
Dann führen Sie diesen Befehl aus, nachdem Sie die PID identifiziert haben.
taskkill/PID typeyourPIDhere/F
P.S. Führen Sie den ersten Befehl erneut aus, um zu überprüfen, ob der Prozess noch verfügbar ist oder nicht. Sie erhalten eine leere Zeile, wenn der Prozess erfolgreich beendet wurde.
Schritt 1 (das gleiche ist in akzeptiert Antwort geschrieben von KavinduWije ):)
netstat -ano | findstr :yourPortNumber
Ändern Sie in Schritt 2 in:
tskill typeyourPIDhere
Da taskkill
in einem git bash-Befehl nicht funktioniert
Wenn Sie GitBash verwenden
Schritt eins:
netstat -ano | findstr :8080
Schritt zwei:
taskkill /PID typeyourPIDhere /F
(/F
beendet den Prozess gewaltsam)
In Windows PowerShell Version 1 oder höher zum Stoppen eines Prozesses auf Port 3000-Typ:
Stop-Prozess (, (netstat -ano | findstr: 3000) .split () | foreach {$ [$ .length-1]}) - Force
Wie von @morganpdx vorgeschlagen, ist hier eine mehr PowerShell-Version, eine bessere Version:
Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000) .OwningProcess -Force
mit Windows10 Standard-Tools:
1.) Finden Sie die PID (ProcessID) für Port 8080:
netstat -aon | findstr 8080
TCP 0.0.0.0:8080 0.0.0.0:0 LISTEN 11999
2.) Töte den Zombie-Prozess:
taskkill /F /PID 11999
dabei ist "11999" Ihre PID
Zur Verwendung in der Befehlszeile:
for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a
Zur Verwendung in bat-file:
for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a
Wenn Sie die Portnummer bereits kennen, reicht es wahrscheinlich aus, ein Software-Beendigungssignal an den Prozess (SIGTERM) zu senden:
kill $(lsof -t -i :PORT_NUMBER)
Für Windows-Benutzer können Sie das CurrPorts -Tool verwenden, um die verwendeten Ports problemlos zu beenden
Falls Sie dies mit Python machen wollen: check Ist der Python-Kill-Prozess möglich, der auf einem bestimmten Port ausgeführt wird, z. B. 8080? Die Antwort von Smunk funktioniert gut. Ich wiederhole seinen Code hier:
from psutil import process_iter
from signal import SIGTERM # or SIGKILL
for proc in process_iter():
for conns in proc.connections(kind='inet'):
if conns.laddr.port == 8080:
proc.send_signal(SIGTERM) # or SIGKILL
continue
Ich habe zookeeper @windows ausgeführt, ich konnte den Zookeeper, der am 2181-Port ausgeführt wird, nicht mit zookeeper-stop.sh anhalten. Es funktionierte
1. netstat -ano | findstr :2181
TCP 0.0.0.0:2181 0.0.0.0:0 LISTENING 8876
TCP [::]:2181 [::]:0 LISTENING 8876
2.taskkill //PID 8876 //F
SUCCESS: The process with PID 8876 has been terminated.
Sie können dies tun, indem Sie eine bat-Datei ausführen:
@ECHO OFF
FOR /F "tokens=5" %%T IN ('netstat -a -n -o ^| findstr "9797" ') DO (
SET /A ProcessId=%%T) &GOTO SkipLine
:SkipLine
echo ProcessId to kill = %ProcessId%
taskkill /f /pid %ProcessId%
PAUSE
Wir können dies vermeiden, indem Sie den IIS mit dem folgenden Befehl einfach neu starten.
IISRESET