commit: dc8d1598df949105b59ad6d7fda54cc67dbb24e9 Author: Bertrand Jacquin <bertrand <AT> jacquin <DOT> bzh> AuthorDate: Tue Dec 13 00:43:48 2016 +0000 Commit: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org> CommitDate: Mon May 22 18:43:39 2017 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dc8d1598
net-proxy/haproxy: Handle stopping multiple proc 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 <AT> gentoo.org> Fixes: https://github.com/gentoo/gentoo/pull/3104/ net-proxy/haproxy/files/haproxy.initd-r3 | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/net-proxy/haproxy/files/haproxy.initd-r3 b/net-proxy/haproxy/files/haproxy.initd-r3 index 2ad38fc9ebc..abba9f86534 100644 --- a/net-proxy/haproxy/files/haproxy.initd-r3 +++ b/net-proxy/haproxy/files/haproxy.initd-r3 @@ -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; }