iIgnore SIGCHLD to prevent zombie processes for non-modal plumbing - sacc - sacc(omys), simple console gopher client Err bitreich.org 70 hgit clone git://bitreich.org/sacc/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/sacc/ URL:git://bitreich.org/sacc/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/sacc/ bitreich.org 70 1Log /scm/sacc/log.gph bitreich.org 70 1Files /scm/sacc/files.gph bitreich.org 70 1Refs /scm/sacc/refs.gph bitreich.org 70 1Tags /scm/sacc/tag bitreich.org 70 1LICENSE /scm/sacc/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit b15d084107da05069a3cf70cd81475f26d8e563e /scm/sacc/commit/b15d084107da05069a3cf70cd81475f26d8e563e.gph bitreich.org 70 1parent edbf8409a1e281d17422e7b12b5edd3832b4429d /scm/sacc/commit/edbf8409a1e281d17422e7b12b5edd3832b4429d.gph bitreich.org 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org bitreich.org 70 iDate: Sun, 27 Mar 2022 11:47:44 +0200 Err bitreich.org 70 i Err bitreich.org 70 iIgnore SIGCHLD to prevent zombie processes for non-modal plumbing Err bitreich.org 70 i Err bitreich.org 70 iIn config.h, when modalplumber = 0 is set (the default), Err bitreich.org 70 isacc does not wait(2) on the process Err bitreich.org 70 iwhen a child process exits Err bitreich.org 70 iand it then becomes a zombie on Linux. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M sacc.c | 3 +++ Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 3 insertions(+), 0 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/sacc.c b/sacc.c /scm/sacc/file/sacc.c.gph bitreich.org 70 i@@ -1079,6 +1079,9 @@ setup(void) Err bitreich.org 70 i sigaction(SIGHUP, &sa, NULL); Err bitreich.org 70 i sigaction(SIGTERM, &sa, NULL); Err bitreich.org 70 i Err bitreich.org 70 i+ sa.sa_handler = SIG_IGN; Err bitreich.org 70 i+ sigaction(SIGCHLD, &sa, NULL); Err bitreich.org 70 i+ Err bitreich.org 70 i if (!mkdtemp(tmpdir)) Err bitreich.org 70 i die("mkdir: %s: %s", tmpdir, strerror(errno)); Err bitreich.org 70 i if (interactive = isatty(1)) { Err bitreich.org 70 .