Perhaps you're running into a situation which I've seen before on other
flavors of UNIX. The scenario goes like this: A process is sending some
output to a device which gets locked up or disconnected for some reason.
Killing the process will make it call exit(), but the exit() code within the
kernel then ignores all signals, including SIGKILL (kill -9). The exit()
code then goes through all open files, and closes them. When it gets to the
file corresponding to the locked/disconnected device, the driver may sleep,
waiting for its output to drain. Unless the device can be unlocked or
reconnected, nothing can be done. Doing another kill -9 won't help, since
SIGKILL is being ignored, and the driver is usually sleeping at a
non-interruptible priority anyway.
I used to be able to duplicate it by doing something like hitting ctrl-s on
a terminal while using "cat" to display a large file (the ctrl-s would
suspend the output). Then, killing cat's parent shell from another terminal
would get it into that situation. This used to occur on NCR's Tower
systems; at that time, we put in a workaround where you could have exit()
disable all signals except for SIGKILL. But with our current systems
(WorldMark / 3000 series), I haven't seen the problem occur.
I don't recall whether or not Linux has a "crash" utility which will let you
examine the kernel stack trace for running processes. If it does, you'd see
exit(), close(), and then some driver routine which eventually called
sleep().
- Greg Porr
>Thanks to all who responded,
>but what I just wanted to know is "what to do if kill -9 doesn't work ?"
>(I thought it would end up in a netscape thread, if I would mention
>netscape in my first mail)
>It has nothing to do with root (no matter where the KILL (kill -9)
>-signal comes from [if senders is allowed to kill the proc]) or too old
>netscape version (I use 4.6, nothing from any linux-distribution) and it
>also isn't a zombie.
>Anyway there doesn't seem to be any harder than kill -9 I think ?
>cu
>cr
>--
>Christian Rummey, Dipl. Chem.
>Institut fuer Organische Chemie, Universitaet Wuerzburg