There has been cases (and systems) in the past that have provided BOTH
1. current kill -9 action:
terminates process as soon as current process returns or is in
the process of returning to user mode. This is normal, and prevents
most partial writes. This is applicable to things like data base
servers, log servers, and journaling processes.
2. Kill, and abort outstanding I/O.
This casues partial log writes, corrupts databases (usually), and will
cause any process to terminate.
When is #2 used:
a. real time systems where the device handling MUST be terminated now.
b. system shutdown for emergencies (this allows filesystems to
finsh flushing, but user processes may be stuck writing to an
audio/parallel device... procedure is to use kill -15, wait a
second or two, kill -9 wait a second or two, KILL UNCONDITIONALLY,
and then shutdown anyway).
b1. fire, flood, power failure (act of god)
b2. system overtemp (loss of AC cooling...)
b3. disk drive failures (to stop writing to a drive, abort
DMA actions, controller failure detection - no need to
propagate errors to a raid...)
b4. safety related aborts in time critical applications
Item b3 allows a system with some pretty catastrophic hardware
failures to actually do something and shutdown/clean up as much as possible
without just hanging - which will also introduce partial log writes...
I worked on one system that determined the main disk controller was failing,
and proceded to request a power cycle on all disk drives attached to that
particular controller to attempt to clear the failure. All user processes
were killed, a detailed diagnostic was provided, then the system shut itself
In realtime underwater survey systems we used such an abort to cancel
expensive operations that were already in progress (expensive if it
finished - setting off remote explosives via an external controller).
Jesse I Pollard, II
Any opinions expressed are solely my own.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to firstname.lastname@example.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/