[systemd-devel] Child of daemon sending SIGCHLD to systemd
Vito Caputo
vcaputo at pengaru.com
Mon Jun 29 19:50:04 UTC 2020
On Mon, Jun 29, 2020 at 02:11:06PM -0500, Ian Pilcher wrote:
> On 6/29/20 2:00 PM, Vito Caputo wrote:
> > I don't know about freecusd, but if it uses a fire-and-forget approach
> > to launching helpers, as in it double-forks, so it doesn't need to
> > bother with asynchronously reaping zombies, then the second fork
> > becomes a child of init. That results in the second forked child
> > becoming a child of init, sending SIGCHLD to init on exit.
>
> Nope, it reaps its own children (usually in response to catching a
> SIGCHLD).
>
> (freecusd itself does double-fork at startup, as it was written back in
> the pre-systemd CentOS 6 days, but I'm pretty sure that's not what
> you're talking about.)
>
If I were in your shoes I'd try reproduce this with a minimal test
case. Freecusd mixes threads and processes, and is a substantial
program with plenty opportunities for bugs.
Have you tried using a minimal test daemon which just forks, with the
parent reaping via waitpid, to see if it triggers the same sigchld for
init? No threads, no anything, just a little dozen line thing.
Regards,
Vito Caputo
More information about the systemd-devel
mailing list