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 <defunct> zombie in
ps(1) output.
This commit is contained in:
Genki Sky 2018-07-22 22:00:10 -04:00 committed by Drew DeVault
parent 2297797bf9
commit b6ed1f29a4

View file

@ -1,5 +1,6 @@
#define _POSIX_C_SOURCE 200112L #define _POSIX_C_SOURCE 200112L
#include <assert.h> #include <assert.h>
#include <signal.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
#include <wayland-server.h> #include <wayland-server.h>
@ -15,6 +16,11 @@
struct roots_server server = { 0 }; struct roots_server server = { 0 };
int main(int argc, char **argv) { 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); wlr_log_init(WLR_DEBUG, NULL);
server.config = roots_config_create_from_args(argc, argv); server.config = roots_config_create_from_args(argc, argv);
server.wl_display = wl_display_create(); server.wl_display = wl_display_create();