From fdce4769f2e0f4175163ffa181c7b3b2192f7b22 Mon Sep 17 00:00:00 2001 From: William Hubbs Date: Tue, 24 Oct 2017 10:26:18 -0500 Subject: supervise-daemon: multiple fixes - Harden against dying by handling all signals that would terminate the program and adding --reexec support - factor the supervisor into its own function - fix test for whether we are already running --- src/rc/rc-misc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/rc/rc-misc.c') diff --git a/src/rc/rc-misc.c b/src/rc/rc-misc.c index d43f1274..33a17b35 100644 --- a/src/rc/rc-misc.c +++ b/src/rc/rc-misc.c @@ -217,6 +217,18 @@ signal_setup(int sig, void (*handler)(int)) return sigaction(sig, &sa, NULL); } +int +signal_setup_restart(int sig, void (*handler)(int)) +{ + struct sigaction sa; + + memset(&sa, 0, sizeof (sa)); + sigemptyset(&sa.sa_mask); + sa.sa_handler = handler; + sa.sa_flags = SA_RESTART; + return sigaction(sig, &sa, NULL); +} + int svc_lock(const char *applet) { -- cgit v1.2.3