Execute o “reinício de rede”, o netstat não mostra portas abertas, o servidor ainda diz que a porta está em uso

0

Eu estou fazendo algum desenvolvimento web no django (python). O programa executa seu próprio servidor de desenvolvimento na porta 8000. Eu desliguei o servidor e agora preciso reiniciá-lo, mas estou recebendo um "Erro: Essa porta já está em uso"

Eu fiz um sudo /etc/init.d/network restart eth0 e o retorno foi:

Shutting down network interfaces:
Setting up network interfaces:
    eth0      Startmode is 'manual' -> skipping                                               skipped
    eno16777736 device: Advanced Micro Devices, Inc. 
    eno16777736 DHCP4 client (dhcpcd) is running
    eno16777736 IP address: 192.168.163.128/24
    eno16777736 DHCP6 client (dhclient6) is running
    eno16777736 . . . but is still waiting for data
    eno16777736       valid_lft forever preferred_lft forever IP address: 192.168.163.128/24
    eno16777736 is up                                                                         done
    lo        
    lo       valid_lft forever preferred_lft forever IP address: 127.0.0.1/8
    lo        is up                                                                         done

e, em seguida, executando sudo netstat -np | grep 8000 não retorna nada. Mas quando eu tento rodar o servidor novamente, ele me dá o mesmo erro. A reinicialização da máquina corrige completamente, mas não posso fazer isso toda vez.

    
por RedRaven 27.02.2014 / 17:53

2 respostas

1

Sempre que isso acontece comigo, corro ps aux | grep ruby e encontro a lista de serviços que correspondem aos meus critérios. No meu caso, eu faço o desenvolvimento do Ruby on Rails, então vou usar grep ruby .

QuandoeuencontrarmeuPID(segundacoluna),euexecutoocomandokill-9PID

Isso matará o processo e eu posso reiniciar meu serviço usando a mesma porta.

    
por 27.02.2014 / 18:04
0

Você está esquecendo a opção "-a" para aninhar. Caso contrário, com apenas "-np", ele fornecerá apenas soquetes "não-escutando" (também conhecidos como soquetes conectados). Então tente com "-npa" eventualmente para ter certeza de que você está recebendo os dados completos (tanto ouvindo quanto não ouvindo).

Dito isto, eu sugeriria no caso de fazer um:

lsof | grep TCP | grep 8000

Se você tem o lsof instalado.

Se o servidor estiver ouvindo (ou quiser escutar) todas as interfaces de rede, ele ainda pode estar aguardando o dispositivo de loopback, por exemplo. Então, minha sugestão é tentar com lsof como mencionado.

    
por 27.02.2014 / 18:24