The importance of killing processes with the right signal
Here is an important corollary to KillOrderImportance: when your system
is overloaded, you should always kill processes with 'kill -9'.
There are a fair number of sources that will tell you that you should
always kill processes with something besides kill -9, unless they
won't die from lesser measures. In an overloaded situation this is
terribly wrong: either the processes don't have a signal handler for the
lesser signal, in which case the two are equivalent, or they do have a
signal handler, in which case using the lesser signal simply causes them
to wake up (if they were sleeping) and churn around more.
Even in general I tend to be somewhat dubious about the advice; usually,
when I am killing a process with anything except a small list of
signals, I want it gone. Using 'kill -9' makes completely sure of
this, in one go, without any fuss and bother.
(If you really want to give a process a chance to clean up, you need to
know what sort of program it is. User level programs tend to only catch
SIGHUP, if that, while demons probably don't catch SIGHUP but may
catch SIGTERM, since many Unixes send everything SIGTERM as part of
shutting down.)
|
|