https://patch-diff.githubusercontent.com/raw/JLErvin/berry/pull/198.patch From 3501ee006ee9bdddc817fd71750e431b4186a0c7 Mon Sep 17 00:00:00 2001 From: Joseph Eib Date: Wed, 30 Nov 2022 17:10:43 -0500 Subject: [PATCH] Avoid creation of zombie process by load_config Previously, a zombie process was created when the process forked in load_config terminates because the parent does not call wait or waitpid. It is unreasonable to wait for the child because a user may exec their autostart script into a long-running process. Instead, the parent now simply ignores SIGCHLD which allows the child to be reaped immediately upon termination. --- wm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wm.c b/wm.c index f3a01b8..b863bea 100644 --- a/wm.c +++ b/wm.c @@ -4,6 +4,7 @@ #include "config.h" #include +#include #include #include #include @@ -2536,8 +2537,10 @@ main(int argc, char *argv[]) LOGN("Successfully opened display"); setup(); - if (conf_found) + if (conf_found) { + signal(SIGCHLD, SIG_IGN); load_config(conf_path); + } run(); close_wm(); free(font_name);