it-swarm.dev

Como matar o processo atualmente usando uma porta no host local no windows?

Como remover o processo/aplicativo atual que já está atribuído a uma porta?

Por exemplo: localhost:8080

234
KavinduWije

Passo 1  

Executar linha de comando como administrador. Em seguida, execute o comando below mention. Digite seu número de porta em yourPortNumber

netstat -ano | findstr: yourPortNumber

Área circulada de cor vermelha mostra o PID (identificador do processo)

Passo 2

Então você executa este comando depois de identificar o PID. 

taskkill/PID typeyourPIDhere / F

P.S. Execute o primeiro comando novamente para verificar se o processo ainda está disponível ou não. Você receberá uma linha vazia se o processo for finalizado com sucesso.

578
KavinduWije

Passo 1 (o mesmo é aceito resposta escrito por KavinduWije ):

netstat -ano | findstr :yourPortNumber

Alterar no passo 2 para:

tskill typeyourPIDhere 

Isto já que taskkill não está funcionando em algum comando git bash

76
afsarkhan10182

Se você estiver usando o GitBash

Passo um:

netstat -ano | findstr :8080

Passo dois: 

taskkill /PID typeyourPIDhere /F 

(/F termina o processo com força)

62
Ara Yaghsizian

Em Windows PowerShell versão 1 ou posterior para interromper um processo no tipo de porta 3000:

Parar Processo (, (netstat -ano | findstr: 3000) .split () | foreach {$ [$ .length-1]}) -Force


Como sugerido por @morganpdx, aqui está uma versão melhor do PowerShell-ish:

Parar-Processar -Id (Get-NetTCPConnection -LocalPort 3000) .OwningProcess -Force

18
todorm

com ferramentas padrão do Windows10:

1.) Encontre PID (ProcessID) para a porta 8080:

netstat -aon | findstr 8080

TCP 0.0.0.0:8080 0.0.0.0:0 ESCUTE 11999

2.) Mate o processo zumbi:

taskkill /F /PID 11999

onde "11999" é seu PID

12
DuracellDeMonaco

Para uso na linha de comando:

for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a

Para uso no arquivo bat:

for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a
10
Mahesh Narwade

Se você já conhece o número da porta, provavelmente será suficiente enviar um sinal de terminação de software para o processo (SIGTERM):

kill $(lsof -t -i :PORT_NUMBER)
3
Telefonplan

Para usuários do Windows, você pode usar a ferramenta CurrPorts para eliminar facilmente as portas em uso enter image description here

3
Zuhair Taha

Caso você queira fazer isso usando python: check É possível no processo python kill que está rodando em uma porta específica, por exemplo 8080? A resposta de Smunk funciona bem. Eu repito o código dele aqui:

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

Você pode fazer um arquivo 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
1
flopcoder

Podemos evitar isso simplesmente reiniciando o IIS, usando o comando abaixo.

IISRESET

0
ksrider 148