diff options
Diffstat (limited to 'net/haproxy/patches/0004-MINOR-Also-accept-SIGHUP-SIGTERM-in-systemd-wrapper.patch')
-rw-r--r-- | net/haproxy/patches/0004-MINOR-Also-accept-SIGHUP-SIGTERM-in-systemd-wrapper.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/net/haproxy/patches/0004-MINOR-Also-accept-SIGHUP-SIGTERM-in-systemd-wrapper.patch b/net/haproxy/patches/0004-MINOR-Also-accept-SIGHUP-SIGTERM-in-systemd-wrapper.patch new file mode 100644 index 000000000..bbda7d80a --- /dev/null +++ b/net/haproxy/patches/0004-MINOR-Also-accept-SIGHUP-SIGTERM-in-systemd-wrapper.patch @@ -0,0 +1,48 @@ +From 6bb7bf7949dd019403b65f400c4b3d0d8589327b Mon Sep 17 00:00:00 2001 +From: Matt Robenolt <matt@ydekproductions.com> +Date: Thu, 11 Sep 2014 05:19:30 +0000 +Subject: [PATCH 04/13] MINOR: Also accept SIGHUP/SIGTERM in systemd-wrapper + +My proposal is to let haproxy-systemd-wrapper also accept normal +SIGHUP/SIGTERM signals to play nicely with other process managers +besides just systemd. In my use case, this will be for using with +runit which has to ability to change the signal used for a +"reload" or "stop" command. It also might be worth renaming this +bin to just haproxy-wrapper or something of that sort to separate +itself away from systemd. But that's a different discussion. :) +(cherry picked from commit c54bdd2a118161b4dc36963b4201edfa7341dadb) +--- + src/haproxy-systemd-wrapper.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/haproxy-systemd-wrapper.c b/src/haproxy-systemd-wrapper.c +index 90a94ce..cc8baa8 100644 +--- a/src/haproxy-systemd-wrapper.c ++++ b/src/haproxy-systemd-wrapper.c +@@ -158,7 +158,9 @@ int main(int argc, char **argv) + memset(&sa, 0, sizeof(struct sigaction)); + sa.sa_handler = &signal_handler; + sigaction(SIGUSR2, &sa, NULL); ++ sigaction(SIGHUP, &sa, NULL); + sigaction(SIGINT, &sa, NULL); ++ sigaction(SIGTERM, &sa, NULL); + + if (getenv(REEXEC_FLAG) != NULL) { + /* We are being re-executed: restart HAProxy gracefully */ +@@ -180,11 +182,11 @@ int main(int argc, char **argv) + + status = -1; + while (-1 != wait(&status) || errno == EINTR) { +- if (caught_signal == SIGUSR2) { ++ if (caught_signal == SIGUSR2 || caught_signal == SIGHUP) { + caught_signal = 0; + do_restart(); + } +- else if (caught_signal == SIGINT) { ++ else if (caught_signal == SIGINT || caught_signal == SIGTERM) { + caught_signal = 0; + do_shutdown(); + } +-- +1.8.5.5 + |