I have an smtp server program which accepts connections and forks child processes to handle the packet exchange. After the fork, the parent closes the child's socket and the child closes the original listen socket. When the parent shuts down, as long as any children are left I am not able to restart the program. It is unable to bind to the port. netstat does not show any process in LISTEN mode on that port, just the child process with is connection to the remote client.
Is there any way to free up the port for listening without shutting down the child processes?