|
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
|
|
|