From 1c5f45c090f0204611862d68e4511b46c39b9618 Mon Sep 17 00:00:00 2001 From: Quentin Rameau Date: Mon, 24 Jul 2017 00:51:26 +0200 Subject: [PATCH] Handle more signals, replace signal() with sigaction() --- quark.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/quark.c b/quark.c index 5ca7d34..4821033 100644 --- a/quark.c +++ b/quark.c @@ -909,7 +909,16 @@ sigcleanup(int sig) static void handlesignals(void(*hdl)(int)) { - signal(SIGINT, hdl); + struct sigaction sa; + + memset(&sa, 0, sizeof(sa)); + sigemptyset(&sa.sa_mask); + sa.sa_handler = hdl; + + sigaction(SIGTERM, &sa, NULL); + sigaction(SIGHUP, &sa, NULL); + sigaction(SIGINT, &sa, NULL); + sigaction(SIGQUIT, &sa, NULL); } static int