Como posso liberar uma porta que ainda está em uso, mas não vinculada a um processo?

2

Estou executando um aplicativo Python que gera vários processos. Ele usa a porta 56008 para escutar solicitações de clientes. Às vezes, depois de fechá-lo, a porta usada ainda está "em uso". Ainda existem alguns processos em Python que parecem estar em execução, mas tentar matá-los usando kill parece não ter nenhum efeito.

Como posso liberá-lo manualmente para que eu possa reiniciar meu aplicativo?

Mais informações:

Saída de ps -C python

  PID TTY          TIME CMD
30118 pts/1    00:00:00 python
30131 pts/1    00:00:00 python

* Existem cerca de 30 linhas no total do formato [pid] pts/1 00:00:00 python

Saída de netstat -tulp (somente linha relevante):

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 *:56008                 *:*                     LISTEN      -
    
por Trindaz 26.06.2013 / 09:49

2 respostas

3

Isso fez o truque

sudo kill -9 'ps -C python | grep python | grep -v grep | awk '{print $1}''
    
por 26.06.2013 / 09:54
0

Você pode tentar codificar adequadamente como seu aplicativo será encerrado (por exemplo, matar todas as crianças, fechar os soquetes de rede)

    
por 26.06.2013 / 10:14