Re: gzip zombie / spawned from init

From: Måns Rullgård
Date: Tue Jun 14 2005 - 06:35:28 EST


Bart Hartgers <bart@xxxxxxxxxxxxxxxxxx> writes:

> Nico Schottelius wrote:
>> Hello!
>> I wrote an init replacement (cinit), which is now in the beta-phase.
>> The only problem I do have currently is that when calling
>> 'loadkeys dvorak' directly from init (without a shell or anything)
>> it will leave behind a gzip zombie (which was forked by loadkeys).
>> Now my question is: Is that a problem of loadkeys or from my init
>> and what could be the reasons that it's still there?
>
> Not really a kernel issue but:
>
> Yes and no. If a parent exits before its child, the child is
> reparented to init. loadkeys probably doesn't wait properly for gzip
> to finish.
>
>> cinit forks() loadkeys and does waitpid() for it. There is no
> > loadkeys zombie, only gzip.
>
> Use waitpid(-1,...) or wait(...) to wait on all childeren in your
> init. gzip will become a child of cinit.

In fact, init must reap any zombies that are reparented to it.
Otherwise, the system will sooner or later run out of PIDs. There are
a lot of misbehaving programs out there, and even if they were all
well-behaved, they could be killed before having waited for their
children, leaving zombies behind.

--
Måns Rullgård
mru@xxxxxxxxxxxxx

-
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/