Come rimuovere il processo/applicazione corrente che è già assegnato a una porta?
Ad esempio: localhost:8080
Passo 1
Esegui la riga di comando come amministratore. Quindi esegui il comando di menzione seguente . Inserisci il tuo numero di porta in yourPortNumber
netstat -ano | findstr: yourPortNumber
L'area cerchiata colorata di rosso mostra il PID (identificativo del processo)
Passo 2
Quindi esegui questo comando dopo aver identificato il PID.
taskkill/PID typeyourPIDhere / F
Post scriptum Eseguire di nuovo il primo comando per verificare se il processo è ancora disponibile o meno. Otterrai una riga vuota se il processo è terminato con successo.
Passaggio 1 (lo stesso è accettato rispondi scritto da KavinduWije ):
netstat -ano | findstr :yourPortNumber
Modifica nel passaggio 2 a:
tskill typeyourPIDhere
Questo dato che taskkill
non funziona in qualche comando git bash
Se si utilizza GitBash
Primo passo:
netstat -ano | findstr :8080
Passo due:
taskkill /PID typeyourPIDhere /F
(/F
termina forzatamente il processo)
In Windows PowerShell versione 1 o successiva per interrompere un processo sul tipo di porta 3000:
Stop-Process (, (netstat -ano | findstr: 3000) .split () | foreach {$ [$ .length-1]}) -Force
Come suggerito da @morganpdx, ecco un altro PowerShell-ish, versione migliore:
Stop-Process -Id (Get-NetTCPConnection -LocalPort 3000) .OwningProcess -Force
Per l'uso in riga di comando:
for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a
Per l'uso nel file bat:
for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a
Con Windows 10 tstrong textools predefiniti:
1.) Trova PID (ProcessId) usando la porta 8080:
netstat -aon | findstr 8080
TCP 0.0.0.0:8080 0.0.0.0:0 ASCOLTA 11980
2.) Uccidi il processo zombie:
taskkill /F /PID 11980
dove "11980" è il tuo ProcessId
Se si conosce già il numero di porta, sarà probabilmente sufficiente inviare un segnale di terminazione software al processo (SIGTERM):
kill $(lsof -t -i :PORT_NUMBER)
Per gli utenti di Windows, puoi usare CurrPorts tool per eliminare facilmente le porte in uso
Nel caso in cui si desideri farlo usando python: check E 'possibile in Python kill process che gira su porte specifiche, per esempio 8080? La risposta di Smunk funziona bene. Ripeto il suo codice qui:
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
Stavo correndo zookeeper @windows, non ero in grado di fermare lo zookeeper in esecuzione alla porta 2181 usando zookeeper-stop.sh, quindi ho provato questo metodo "//" della doppia barra a taskkill. Ha funzionato
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.
Puoi farlo eseguendo un file bat:
@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
Possiamo evitarlo semplicemente riavviando IIS, usando il comando muggito.
IISRESET