I have some non-OS server side processes that listen on ephemeral ports
(unprivileged ports above 1024 - lets say port 4000). I would like to be
able to reserve this port so that no other process will grab the port when
it goes to create a new network connection. The problem I am currently
experiencing is that I might have to bounce my process on port 4000 (for
instance, in order to upgrade the application software), but when I go to
start up the process again, some other process has grabbed port 4000 (and I
get a message about "port in use". The other process grabbing the port is
a process that dynamically allocates port to handle client connections, so
it just grabs the next available port when it gets a connection request.
So, is there anyway to say to the OS don't assign port 4000 unless it is
specifically requested? Would putting a custom entry in the /etc/services
file (like "myservice 4000/tcp") cause the operating system to not
allocate this port when a process is being assigned a random port for use?
Is there some other mechanism to do this?
I know I can kill the process using the port to recover it, but that is an
after the fact correction (that potentially violently ends a client
connection) rather than a prevention.
Thanks,
Tom Ackenhusen
tackenhu_at_fnal.gov
Fermi National Accelerator Laboratory
Received on Fri Feb 16 2001 - 21:18:46 NZDT