|
@@ -0,0 +1,41 @@
|
|
1
|
+From 1f24e3fee3aba83fb3338d17589d0ad0f34f6c73 Mon Sep 17 00:00:00 2001
|
|
2
|
+From: Apollon Oikonomopoulos <apoikos@debian.org>
|
|
3
|
+Date: Wed, 8 Oct 2014 15:14:41 +0300
|
|
4
|
+Subject: [PATCH 1/2] BUG/MEDIUM: systemd: set KillMode to 'mixed'
|
|
5
|
+
|
|
6
|
+By default systemd will send SIGTERM to all processes in the service's
|
|
7
|
+control group. In our case, this includes the wrapper, the master
|
|
8
|
+process and all worker processes.
|
|
9
|
+
|
|
10
|
+Since commit c54bdd2a the wrapper actually catches SIGTERM and survives
|
|
11
|
+to see the master process getting killed by systemd and regard this as
|
|
12
|
+an error, placing the unit in a failed state during "systemctl stop".
|
|
13
|
+
|
|
14
|
+Since the wrapper now handles SIGTERM by itself, we switch the kill mode
|
|
15
|
+to 'mixed', which means that systemd will deliver the initial SIGTERM to
|
|
16
|
+the wrapper only, and if the actual haproxy processes don't exit after a
|
|
17
|
+given amount of time (default: 90s), a SIGKILL is sent to all remaining
|
|
18
|
+processes in the control group. See systemd.kill(5) for more
|
|
19
|
+information.
|
|
20
|
+
|
|
21
|
+This should also be backported to 1.5.
|
|
22
|
+(cherry picked from commit 74f016985ab1fa7a6a5afa301d982e77eba9c96a)
|
|
23
|
+---
|
|
24
|
+ contrib/systemd/haproxy.service.in | 1 +
|
|
25
|
+ 1 file changed, 1 insertion(+)
|
|
26
|
+
|
|
27
|
+diff --git a/contrib/systemd/haproxy.service.in b/contrib/systemd/haproxy.service.in
|
|
28
|
+index 1a3d2c0..0bc5420 100644
|
|
29
|
+--- a/contrib/systemd/haproxy.service.in
|
|
30
|
++++ b/contrib/systemd/haproxy.service.in
|
|
31
|
+@@ -5,6 +5,7 @@ After=network.target
|
|
32
|
+ [Service]
|
|
33
|
+ ExecStart=@SBINDIR@/haproxy-systemd-wrapper -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid
|
|
34
|
+ ExecReload=/bin/kill -USR2 $MAINPID
|
|
35
|
++KillMode=mixed
|
|
36
|
+ Restart=always
|
|
37
|
+
|
|
38
|
+ [Install]
|
|
39
|
+--
|
|
40
|
+1.8.5.5
|
|
41
|
+
|