wake-up-neo.com

Wie bricht man den Prozess ab, der gerade einen Port auf localhost in Windows verwendet?

Wie entferne ich den aktuellen Prozess/die Anwendung, die bereits einem Port zugewiesen ist?

Zum Beispiel: localhost:8080

234
KavinduWije

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.

578
KavinduWije

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

76
afsarkhan10182

Wenn Sie GitBash verwenden

Schritt eins:

netstat -ano | findstr :8080

Schritt zwei: 

taskkill /PID typeyourPIDhere /F 

(/F beendet den Prozess gewaltsam)

62
Ara Yaghsizian

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

18
todorm

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

12

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
10
Mahesh Narwade

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)
3
Telefonplan

Für Windows-Benutzer können Sie das CurrPorts -Tool verwenden, um die verwendeten Ports problemlos zu beenden enter image description here

3
Zuhair Taha

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 
2
Kardi Teknomo

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.
1
sandprogrammer

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
1
flopcoder

Wir können dies vermeiden, indem Sie den IIS mit dem folgenden Befehl einfach neu starten.

IISRESET

0
ksrider 148