>> By comparison, FreeBSD and many other BSD-derived systems simply do a kill
>> -TERM, kill -9, which doesn't always shut down complex systems like a
>> database very cleanly, either.
> Yes, but at least that is a two stage process. One is a 'clean up your mess
> or you'll get killed', and the next (later on), the process will be forced
> down. Ill conceived of applications (those which are supposed to be
> reliable) forget to catch the signals, and have serious ramifications on
> shutdowns.
And that works very well when processes are written properly and do not have
external dependencies. Software ported from non-Unix systems, software
running in an interpreter (like a Java VM, perhaps), and software with complex
dependencies between multiple processes tend to not do so well.
For example, even if each and every Oracle process handled kill -TERM
properly, having your transaction log writer process shutdown cleanly before
various other database processes do doesn't result in Oracle closing and
dismounting the databases cleanly.
-Chuck
-------------+-------------------+-----------------------------------
"The human race's favorite method for being in control of the facts
is to ignore them." -Celia Green