net-proxy/haproxy: Handle stopping multiple proc
authorBertrand Jacquin <bertrand@jacquin.bzh>
Tue, 13 Dec 2016 00:43:48 +0000 (00:43 +0000)
committerRobin H. Johnson <robbat2@gentoo.org>
Mon, 22 May 2017 18:43:39 +0000 (11:43 -0700)
When haproxy is configured to use more than 1 proc, it creates a PID
file listing all PID, with 1 PID per line. Since start-stop-daemon only
handle 1 PID per pidfile, we need to had some magic in the init script in
order to stop every process haproxy previously started.

See: https://bugs.gentoo.org/show_bug.cgi?id=584410

Package-Manager: portage-2.3.0
(cherry picked from commit 551acd9853212fd0debf4563312af88908b7b497)
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Fixes: https://github.com/gentoo/gentoo/pull/3104/

net-proxy/haproxy/files/haproxy.initd-r3

index 2ad38fc9ebcc333192410cbaff9f431d171a43dc..abba9f865345dc104af1796fdfb3aeab9e394b4e 100644 (file)
@@ -60,6 +60,17 @@ stop_pre() {
        fi
 }
 
+stop() {
+       local _t _pid
+
+       _t="$(mktemp)"
+       for _pid in $(cat ${pidfile}) ; do
+               echo "${_pid}" > "${_t}"
+               pidfile="${_t}" openrc_default_stop
+       done
+       rm -f "${_t}"
+}
+
 reload() {
        checkconfig || { eerror "Reloading failed, please fix your config(s) first"; return 1; }