When I encounter processes which are unresponsive to kill -9, I find that this generally works: runlevel # say the current runlevel is 3 telinit 1 telinit 3 For some reason, init seems to clean them up when nothing else does.