From b6ed1f29a4dbba93eb53c32ec5492db8ee1d9343 Mon Sep 17 00:00:00 2001 From: Genki Sky Date: Sun, 22 Jul 2018 22:00:10 -0400 Subject: [PATCH] rootston: Reap child processes Just install a SIG_IGN handler, which is defined by POSIX.1-2001 to reap the child. To test, spawn any process (e.g. GUI application) with a keybinding, close that process, verify it doesn't show up as a zombie in ps(1) output. --- rootston/main.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rootston/main.c b/rootston/main.c index cc3ffd3e..6f4e2612 100644 --- a/rootston/main.c +++ b/rootston/main.c @@ -1,5 +1,6 @@ #define _POSIX_C_SOURCE 200112L #include +#include #include #include #include @@ -15,6 +16,11 @@ struct roots_server server = { 0 }; int main(int argc, char **argv) { + if (signal(SIGCHLD, SIG_IGN) == SIG_ERR) { + wlr_log_errno(WLR_ERROR, "Unable to install SIGCHLD handler"); + return 1; + } + wlr_log_init(WLR_DEBUG, NULL); server.config = roots_config_create_from_args(argc, argv); server.wl_display = wl_display_create();