Unkillable processes?

Michael ODonnell michael.odonnell at comcast.net
Sat Feb 25 12:11:01 EST 2006


> > This will almost always work, especially with zombie processes.
> > What you are doing is transitioning into single-user mode.
>
> Any idea what the underlying mechanism is that makes this work?


The kernel has no notions such as "run level" and "single-user
mode" - that's all state that's managed strictly in user space -
and there's nothing special or sacred about any of those modes.
You can do everything in single-user mode that you can do in any
other mode, provided you're prepared to do a bunch of stuff by
hand that's normally automated.  The different modes are simply
different rules governing which things are automated.

Meanwhile, a process that's "wedged" or unresponsive is
one that's unable to make progress until certain conditions
(managed by/in the kernel) are met, such changes most often being
associated (as others have mentioned) with device state where,
too often, we're at the mercy of badly coded drivers :-(

So, to the extent that frobbing your run level has any effect
at all on any wedged processes, it's a safe bet that it's a
distant side effect of all the other flailing that's going on.

I'm not saying that such frobbing never leads to that Fresh
Feeling(tm), just that the cause-effect relationship is anything
but straightforward or reliable.  It always seems like a defeat
when I'm reduced to such superstitious measures because it feels
so similar to the Therapeutic Reboots certain other OS's require.

BTW, The term "zombie" is usually reserved for the specific
case of a process that has already exited but has not yet been
"reaped" - its parent (or init, for orphans) has not yet done
a wait() on it, which is necessary for its process slot to
be freed.  I don't think that's what's being discussed here.
 



More information about the gnhlug-discuss mailing list