Re: is killing zombies possible w/o a reboot?

From: linux-os
Date: Wed Nov 03 2004 - 11:51:57 EST


On Wed, 3 Nov 2004, Gene Heskett wrote:

On Wednesday 03 November 2004 09:33, bert hubert wrote:
On Wed, Nov 03, 2004 at 07:51:39AM -0500, Gene Heskett wrote:
But I'd tried to run gnomeradio earlier to listen to the
elections,

Depressing enough.

I'd tried to kill the zombie earlier but couldn't.
Isn't there some way to clean up a &^$#^#@)_ zombie?

Kill the parent, is the only (portable) way.

The parent would have been the icon. It opened its usual sized small
window, but never did anything to it. I clicked on closing the
window, but 10 seconds later the system asked me if I wanted to kill
it as it wasn't responding. I said yes, the window disappeared, but
kpm said gomeradio was still present as process 8162, and that wasn't
killable. Funny thing is, on the reboot, it automaticly self
restored and ran just fine.

I consider this as one of linux's achilles heels. Such a hung and
dead process can be properly disposed of by a primitive os called os9
because it keeps track of all resources in tables in the kernel
memory space. Issueing a kill procnumber removes the process from
the exec queue, reclaims all its memory to the system free memory
pool, and removes it from the IRQ service tables if an entry exists
there. Near instant, total cleanup, nothing left, in about 250
microseconds max. 1.79 mhz cpu's aren't quite instant :)

Lets just say that I think having to reboot because of a zombie that
has resources locked up, and have the reboot fubared by it too,
aren't exactly friendly actions.

[SNIPPED....]

There is no problem killing a task and freeing its resources.
The problem is that Linux and other Unix variations need to
do this in a specific manner. That manner being that some
parent (or ultimately init) needs to receive the terminating
status. A task that has been otherwise killed, but is awaiting
its status to be obtained is in the 'Z' or zombie state. If
the code for either the child task or its parent was improperly
written, the death of a parent could allow a child to wait
forever (zombie).

The fix is to fix the code. Your temporary fix is to use
Ctrl-Alt-backspace to kill the X11 server (the parent).
If it doesn't restart (it's not a kernel problem, it's
a distribution problem), you can log in as root and
execute:

/etc/X11/prefdm &

All these little windows and icons are the 'children' of
the X server. The above is a temporary work-around for
a non-kernel problem.


Cheers,
Dick Johnson
Penguin : Linux version 2.6.9 on an i686 machine (5537.79 BogoMips).
Notice : All mail here is now cached for review by John Ashcroft.
98.36% of all statistics are fiction.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/