A method and apparatus for controlling the termination of one or more processes
in an information handling system, such as UNIX processes running under the control
of an UNIX operating system kernel, in response to a shutdown command. Processes
may optionally register with a registration facility of the operating system kernel
as permanent processes ineligible for process termination or as blocking processes
entitled to advance notification of process termination. In response to receiving
a shutdown command, a shutdown facility of the operating system kernel notifies
each process that has registered as a blocking process of an impending shutdown.
Upon the expiration of a predetermined time interval, the shutdown facility determines
whether all of the processes that have registered as blocking processes have concurred
in the shutdown, either by unregistering as blocking processes or by terminating.
If all of the processes that have registered as blocking processes have concurred
in the shutdown, the shutdown facility terminates processes that have not registered
as permanent processes while allowing processes that have registered as permanent
processes to continue to run. Otherwise, the shutdown facility aborts the shutdown
without terminating any of the processes and generates a message identifying processes
that have not concurred in the shutdown.