[Linux] dead sockets

otets-mihail

Linux 2.4.18
как избавиться от мертвых сокетов (сокетов, inode которых не принадлежат ни одному из процессов) не перезагружая машину?
т.е.


[xxx yyy]# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
...
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN -
...

abrek

Я бы скорее заподозрил, что это netstat неправильно показывает. Уверен, что никакой процесс не держит дескрипторы?
Если так, тогда вместе с перезагрузкой надо бы ядро обновить

otets-mihail

Я тоже заподозрил, но netstat статически слинкован на другой машине.
Есть тема по-быстрому написать модуль, освобождающий порт, но ломает

VitMix

Я тоже заподозрил, но netstat статически слинкован на другой машине.
Хм. Тогда он вполне может глючить.
А эти дескрипторы висят неограниченно долго, или со временем всё-же исчезают? Если исчезают, то возможно они в TIME_WAIT находятся, а netstat неправильно определяет состояние.

dus1970

глупый, но проверенный на практике совет:
nc localhost 80
или
telnet localhost 80
После connection refused порт исчезнет.

state7401281

> telnet localhost 80
> После connection refused порт исчезнет.
я видел это сбоку и могу ошибаться, но в конкретно этом случае было connection accepted
Оставить комментарий
Имя или ник:
Комментарий: