From 52b599a63c488d3a80bb9f5dd97bad0b10103c54 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Thu, 14 Jan 2021 10:30:24 -0500 Subject: libthread: call setpgrp in programs that will background This fixes the 'run stats from rc; exit rc; stats dies' problem. It's unclear whether this is the right fix or whether rc should be starting all its interactive commands in their own process groups. But at least it does fix stats dying. --- src/libthread/daemonize.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libthread/daemonize.c b/src/libthread/daemonize.c index f994ffe1..29929068 100644 --- a/src/libthread/daemonize.c +++ b/src/libthread/daemonize.c @@ -101,6 +101,13 @@ _threadsetupdaemonize(void) sigpid = 1; + /* + * We've been told this program is likely to background itself. + * Put it in its own process group so that we don't get a SIGHUP + * when the parent exits. + */ + setpgrp(); + if(pipe(p) < 0) sysfatal("passer pipe: %r"); -- cgit v1.2.3