Como você libera uma porta sendo mantida aberta por processo morto?

50

Um colega meu teve um problema recente em que um processo que supostamente havia morrido ainda estava vinculado a uma porta de rede, impedindo que outros processos fossem vinculados a essa porta. Especificamente, netstat -a -b estava relatando que um processo denominado System com PID 4476 tinha a porta 60001 aberta, exceto que não existia nenhum processo com o PID 4476, pelo menos até onde eu sabia.

O Process Explorer e o Gerenciador de Tarefas não listaram o PID 4476 (embora houvesse outro processo chamado System com PID 4, que tinha seu próprio conjunto de conexões TCP que não incluíam 60001). taskkill /PID 4476 também relatou que o PID 4476 não foi encontrado.

Existe uma maneira de matar este processo misterioso do sistema para liberar a porta à qual está vinculado atualmente? O que pode causar isso acontecer? Como pode haver processos que nenhum do Gerenciador de Tarefas, Process Explorer e Taskkill não conhecem? A reinicialização conseguiu corrigir o problema, mas eu gostaria de saber se há uma maneira de corrigir isso sem reinicializar.

    
por Adam Rosenfield 14.09.2010 / 16:35

6 respostas

55

Eu sei que este é um tópico antigo, mas no caso de alguém mais estar tendo o mesmo problema, eu tive ...

O que pode estar acontecendo é que seu processo teve uma porta TCP aberta quando ela caiu ou saiu sem fechar explicitamente. Normalmente, o sistema operacional limpa esse tipo de coisa, mas apenas quando o registro do processo desaparece. Embora o processo pareça não estar mais sendo executado, há pelo menos uma coisa que pode manter um registro dele, a fim de evitar a reutilização de seu PID. Esta é a existência de um processo filho que não é desanexado do pai.

Se o seu programa gerar processos enquanto estava em execução, tente eliminá-los. Isso deve fazer com que seu registro de processo seja liberado e a porta TCP seja limpa. Aparentemente, o windows faz isso quando o registro é liberado não quando o processo sai como eu esperava.

    
por 25.05.2011 / 20:18
6

Você tentou usar o TCPView e fechar a conexão? Eu não sei se vai mostrar a conexão no cenário que você está descrevendo, porque eu nunca tive isso acontecer comigo. Mas é a única coisa em que consigo pensar se isso acontecer novamente.

Qual foi o processo - software comercial ou algo caseiro? Parece que a porta 60001 é usada por alguns cavalos de Troia - gostaria de saber se poderia ter sido um rootkit ou algo que poderia se esconder do sistema operacional? Pode querer dar uma boa olhada na máquina com AV, talvez algo de mídia inicializável.

    
por 14.09.2010 / 16:47
2

Abra o prompt de comando como administrador

  1. C: \ WINDOWS \ system32 > netstat -ano | findstr: 7895

*** Repita o passo 2 até que não haja mais processo filho

  1. C: \ WINDOWS \ system32 > processo wmic em que (ParentProcessId = 1091) obtém Caption, ProcessId

    Caption ProcessId

    cmd.exe 1328

2.a. C: \ WINDOWS \ system32 > processo wmic em que (ParentProcessId = 1328) obtém       Legenda, ProcessId

  Caption  ProcessId

  conhost.exe  1128

2.b. repita isso até que nenhum outro processo filho seja encontrado

- Depois, mate todos os processos filhos

  1. C: \ WINDOWS \ system32 & task task / F / PID 1128 SUCESSO: O processo com o PID 9500 foi encerrado.
por 10.05.2018 / 22:51
1

Eu enfrentei o mesmo problema anteriormente, o comando netstat -a -n windows me forneceu a lista de portas abertas com o ID do processo. A partir disso eu peguei o número da porta que eu queria fechar a conexão e depois fechei essa conexão usando o software TCPView. Isso funcionou para mim.

    
por 26.06.2015 / 07:33
-4

Se você for usuário do Windows, siga as etapas abaixo Passo 1: Vá para este caminho: Painel de Controle \ Todos os Itens do Painel de Controle \ Ferramentas Administrativas

Passo 2: Clique nos serviços

Etapa 3: interromper serviços indesejados em execução na porta desejada.

    
por 30.09.2015 / 08:19
-5

ps -ef | grep processname

mate os processos relacionados

matar -9 pid pid

Trabalhou no meu caso

    
por 21.02.2013 / 11:47