5.16 Shutdown of Server Host
The previous two sections discussed the crashing
of the server host, or the server host being unreachable across the
network. We now consider what happens if the server host is shut
down by an operator while our server process is running on that
host.
When a Unix system is shut down, the
init process normally sends the SIGTERM signal to
all processes (we can catch this signal), waits some fixed amount
of time (often between 5 and 20 seconds), and then sends the
SIGKILL signal (which we cannot catch) to any processes
still running. This gives all running processes a short amount of
time to clean up and terminate. If we do not catch SIGTERM
and terminate, our server will be terminated by the
SIGKILL signal. When the process terminates, all open
descriptors are closed, and we then follow the same sequence of
steps discussed in Section 5.12. As
stated there, we must use the select or poll
function in our client to have the client detect the termination of
the server process as soon as it occurs.
|