Wandering Thoughts archives

2008-01-11

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.)

sysadmin/KillSignalImportance written at 23:41:04; Add Comment


Page tools: See As Normal.
Search:
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.