A resposta para 1, infelizmente, é reiniciar o processo que ainda tem referências às conexões. Nada mais o forçará a close
deles.
Eu executo um servidor Apache2 que usa o daemon Shibboleth (shibd) como módulo de autenticação federada. Certas conexões de servidor usando o Shibboleth parecem permanecer permanentemente no estado CLOSE_WAIT.
tcp 38 0 blah.blah:57346 shib.server.:8443 CLOSE_WAIT
tcp 38 0 blah.blah:45601 shib.server2:8443 CLOSE_WAIT
tcp 38 0 blah.blah:41737 shib.server3:5057 CLOSE_WAIT
Pelo que eu posso descobrir, CLOSE_WAIT significa que quando o servidor remoto se desconecta, o aplicativo local não consegue fechar a conexão, como deveria. Eu suspeito que o shibd é responsável de alguma forma.
Escusado será dizer que, se houver conexões CLOSE_WAIT suficientes, tenho um problema.
Tentando se livrar das conexões CLOSE_WAIT usando simplesmente
/etc/init.d/networking restart
não funciona. Na verdade, a rede parece se recusar a fechar e reiniciar, e eu recebo um erro SIOCADDRT: File existe (ou seja, a rede está tentando iniciar sem ter parado primeiro). Mesmo problema com ifup -a
Então eu tenho duas perguntas - uma pode ser fácil e outra mais difícil.
A resposta para 1, infelizmente, é reiniciar o processo que ainda tem referências às conexões. Nada mais o forçará a close
deles.