Process reapers
Rui Paulo
rpaulo at me.com
Mon Dec 1 22:43:28 UTC 2014
On Dec 1, 2014, at 10:52, Konstantin Belousov <kostikbel at gmail.com> wrote:
>
> Please find at https://www.kib.kiev.ua/kib/reaper.6.patch
> the patch which adds a way for the process to declare itself a reaper
> for the subtree of processes forked after the event. In other words,
> after the process is marked as reaper, all orphaned children somewhere
> in subtree after the reaper, are reparented to the process instead of
> init(8).
>
> The API is based on the following DragonFlyBSD commit
> http://gitweb.dragonflybsd.org/dragonfly.git/commit/fc3bc2868ad212f3b412ad13f0eaa35b3f8d458d
> Linux has somewhat similar prctl(PR_SET_CHILD_SUBREAPER).
> Solaris is most advanced in the area, the feature which provides
> the same function is contracts(4), which is very advanced and
> IMO over-designed interface.
>
> I did not wrote the man page, the API is still in flux. It should
> be relatively clean how to use the thing by the descriptive names
> and comments in header file. One of the test programs illustrating
> the interface is available at https://www.kib.kiev.ua/kib/reaper2.c .
> See http://leaf.dragonflybsd.org/cgi/web-man?command=procctl§ion=2
> for the description of DragonFly interface.
>
> The feature was requested by bapt, jilles already provided useful
> feedback that was incorporated into the patch.
>
> Please review and comment.
One comment I have is that we could rename the variables to something more meaningful instead of "p1" or "p2". If "p1" is the reaper, we could call it "p_reaper".
--
Rui Paulo
More information about the freebsd-arch
mailing list