Skip to content

Commit c15ed74

Browse files
author
Sheng Yang
committed
CLOUDSTACK-7841: Gracefully reload haproxy config
The old way would disconnect all the existing connections through haproxy when reload the config. This new way would ensure that all the existing connections would still alive after reload the config.
1 parent a43fba6 commit c15ed74

1 file changed

Lines changed: 2 additions & 9 deletions

File tree

systemvm/patches/debian/config/root/reconfigLB.sh

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,23 +23,16 @@ new_config=$1
2323

2424
# save previous state
2525
mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.old
26-
mv /var/run/haproxy.pid /var/run/haproxy.pid.old
2726

2827
mv $new_config /etc/haproxy/haproxy.cfg
29-
kill -TTOU $(cat /var/run/haproxy.pid.old)
30-
sleep 2
31-
if haproxy -D -p /var/run/haproxy.pid -f /etc/haproxy/haproxy.cfg; then
28+
if haproxy -p /var/run/haproxy.pid -f /etc/haproxy/haproxy.cfg -sf $(cat /var/run/haproxy.pid); then
3229
logger -t cloud "New haproxy instance successfully loaded, stopping previous one."
33-
kill -KILL $(cat /var/run/haproxy.pid.old)
34-
rm -f /var/run/haproxy.pid.old
3530
ret=0
3631
else
3732
logger -t cloud "New instance failed to start, resuming previous one."
38-
kill -TTIN $(cat /var/run/haproxy.pid.old)
39-
rm -f /var/run/haproxy.pid
40-
mv /var/run/haproxy.pid.old /var/run/haproxy.pid
4133
mv /etc/haproxy/haproxy.cfg $new_config
4234
mv /etc/haproxy/haproxy.cfg.old /etc/haproxy/haproxy.cfg
35+
haproxy -p /var/run/haproxy.pid -f /etc/haproxy/haproxy.cfg -sf $(cat /var/run/haproxy.pid)
4336
ret=1
4437
fi
4538

0 commit comments

Comments
 (0)