itlibthread: call setpgrp in programs that will background - plan9port - [fork] Plan 9 from user space Err mx1.adamsgaard.dk 70 hgit clone git://src.adamsgaard.dk/plan9port URL:git://src.adamsgaard.dk/plan9port mx1.adamsgaard.dk 70 1Log /src/plan9port/log.gph mx1.adamsgaard.dk 70 1Files /src/plan9port/files.gph mx1.adamsgaard.dk 70 1Refs /src/plan9port/refs.gph mx1.adamsgaard.dk 70 1README /src/plan9port/file/README.md.gph mx1.adamsgaard.dk 70 1LICENSE /src/plan9port/file/LICENSE.gph mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1commit 52b599a63c488d3a80bb9f5dd97bad0b10103c54 /src/plan9port/commit/52b599a63c488d3a80bb9f5dd97bad0b10103c54.gph mx1.adamsgaard.dk 70 1parent 3ccd61629b641613bcccbc51125330efab9c89a7 /src/plan9port/commit/3ccd61629b641613bcccbc51125330efab9c89a7.gph mx1.adamsgaard.dk 70 hAuthor: Russ Cox URL:mailto:rsc@swtch.com mx1.adamsgaard.dk 70 iDate: Thu, 14 Jan 2021 10:30:24 -0500 Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 ilibthread: call setpgrp in programs that will background Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iThis fixes the 'run stats from rc; exit rc; stats dies' problem. Err mx1.adamsgaard.dk 70 iIt's unclear whether this is the right fix or whether rc should Err mx1.adamsgaard.dk 70 ibe starting all its interactive commands in their own process Err mx1.adamsgaard.dk 70 igroups. But at least it does fix stats dying. Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iDiffstat: Err mx1.adamsgaard.dk 70 i M src/libthread/daemonize.c | 7 +++++++ Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i1 file changed, 7 insertions(+), 0 deletions(-) Err mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1diff --git a/src/libthread/daemonize.c b/src/libthread/daemonize.c /src/plan9port/file/src/libthread/daemonize.c.gph mx1.adamsgaard.dk 70 it@@ -101,6 +101,13 @@ _threadsetupdaemonize(void) Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i sigpid = 1; Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i+ /* Err mx1.adamsgaard.dk 70 i+ * We've been told this program is likely to background itself. Err mx1.adamsgaard.dk 70 i+ * Put it in its own process group so that we don't get a SIGHUP Err mx1.adamsgaard.dk 70 i+ * when the parent exits. Err mx1.adamsgaard.dk 70 i+ */ Err mx1.adamsgaard.dk 70 i+ setpgrp(); Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i if(pipe(p) < 0) Err mx1.adamsgaard.dk 70 i sysfatal("passer pipe: %r"); Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 .