listening socket alive even after process death ?

yuri_at_tsoft.com
Date: 08/16/05


Date: 16 Aug 2005 14:01:03 -0700

I have a program (prog#1) that listens for TCP connections on port
37708 on host host#1.
Many other processes (prog#2) connect and communicate with it from a
variaty of other hosts.

I kill listening program on host#1 with SIGINT.
All prog#2's are still in select waiting to get something from prog#1.
Sockets seem to be all alive on the other end although listening
program have died.

Moreover I can even connect to host#1 on the same port with telnet.

netstat -p -n --inet
shows lines like:
...
tcp 23 0 10.30.75.219:37708 10.30.78.156:37858
ESTABLISHED -
tcp 23 0 10.30.75.219:37708 10.30.78.144:36590
ESTABLISHED -
...
Last column is supposed to show PID of the process but it actually is
just dash.

How can this be that process have died and it's sockets didn't ?

>uname
>Linux xxx.xxx.com 2.4.21-20.ELsmp #1 SMP Wed Aug 18 20:34:58 EDT 2004 x86_64 x86_64 x86_64 GNU/Linux

Thanx,
Yuri