Não há um caminho fácil. Primeiro, isso não tem nada a ver com rede : CLOSE_WAIT é o status que seu processo filho digita depois de responder a um pacote FIN com um > ACK e antes de fechar o socket e enviar ao seu par um pacote FIN . Durante o estado CLOSE_WAIT , o processo está concluindo alguma operação no final da qual ele irá chamar close () , o que solicita ao kernel que envie o pacote FIN.
Em outras palavras, durante o estado CLOSE_WAIT o processo está tentando concluir alguma operação, não esperando por algo de um par; portanto, desligar a rede, reiniciar as interfaces e assim por diante não conseguirá nada.
Em geral, isso não deve ser per se um grande problema: não há nada de errado em ter alguns processos pendurados em um estado CLOSE_WAIT . O que o incomoda sobre isso é difícil de entender: você afirma que o processo pai atende na porta 11000 e, em seguida, contata o filho na porta 37528, mas você afirma que, depois que o processo pai morreu, não é possível iniciar uma nova instância do servidor. a porta 11000 não é liberada. Mas você acabou de afirmar que não é o processo infantil que está usando isso! Então quem é?
De qualquer forma, há apenas algumas coisas que você pode tentar:
-
você tentou matar um processo com a opção -9 ? É o mais strong que você pode inventar.
-
Você pode usar strace desde o início para rastrear as chamadas do sistema, mesmo nos processos filhos (ou é processos filho?), por meio de
strace -f YourParentProcess
Isso também seguirá os processos * fork () * ed.
-
Meu palpite é que você pode muito bem esquecer a criança e tentar determinar por que a porta 11000 parece ocupada e por quem. Você deve tentar o comando mais prático
ss -lntp | grep 11000
para investigar o assunto.