Como saber qual processo estava usando uma porta após entrar no estado TIME_WAIT?

4

No Linux, existe uma maneira de descobrir qual processo estava usando uma porta, antes de entrar no estado TIME_WAIT .

Quando uso netstat -tnp , vejo apenas dois pontos finais, mas nenhuma informação sobre o processo.

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 127.0.0.1:38805             127.0.0.1:111               TIME_WAIT   -
    
por user41183 16.05.2012 / 23:01

2 respostas

3

No meu caso, o rastreamento do soquete se abre e me ajuda a identificar os estados TIME_WAIT (desde que normalmente significa que meu aplicativo está criando repetidamente soquetes)

Baseado em como posso identificar qual processo está fazendo tráfego UDP no linux? , eu tentei auditcl. "-S socket" não funciona no meu Ubuntu, mas o código abaixo (opcionalmente adicionando -F pid = pgrep -x yourApplication ) é bastante bom para criar criações de socket

auditctl -a exit,always   -S socketcall -F uid=$USER -F a0=1 -F a3=1  -k OPEN_SOCKETS
    
por 17.09.2012 / 16:35
2

Não, o sistema não acompanha isso.

O

TCPView mostra claramente que os soquetes fechados que estão no estado TIME_WAIT são realocados instantaneamente para processo 0 (sistema).

Desculpe, eu interpretei mal sua pergunta; a resposta acima se refere aos sistemas Windows .
No entanto, acho que o mesmo acontece nos sistemas Linux também.

    
por 16.05.2012 / 23:12

Tags