Process handlers, and zombies, or preap(1)

Ben Morrow ben at morrow.me.uk
Mon Mar 31 21:11:59 UTC 2014


Quoth "Chris H" <bsd-lists at bsdforge.com>:
>  I'm evaluating/experimenting on releng_9. The install, and now
> custom kernel have noting exotic, or anything out of the ordinary.
> top(1), and ps(1) indicate a (1) zombie, or <defunct> process. On
> my releng_8 systems, when I occasionally encounter one of these,
> they soon disappear (are reaped) from the process table. While I
> have not investigated this far enough on both versions to determine
> whether the parent process reaped the child on the releng_8 systems,
> and the parent on releng_9 is simply an irresponsible parent, eg;
> a different parent.

What is the parent?

> Before I do, I was wondering if there was any
> specific difference between the 2 versions that might cause better
> handling of such situations. While I recognize that resource
> starvation is HIGHLY unlikely, except by perhaps a rouge parent

A rouge parent? :)

> spawning multitudes of zombies. I thought it might be useful for
> "housekeeping" to 1) provide a process table housekeeper (zombie
> reaper),

That's called init(8). When the parent exits, init will wait for the
zombie.

> or 2) create a system utility/command like SunOS/OpenSolaris
> has; preap(1).

That seems like a bad idea, to me. Generally speaking I would expect it
to be safer to kill and restart the parent, allowing init to do its job.

Ben



More information about the freebsd-stable mailing list