我一直使用此命令来成功重新启动 haproxy:
sudo haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -sf $(cat /var/run/haproxy.pid)
然而,在升级到最新的 Haproxy 1.5 开发版本后,我发现它并没有像预期的那样工作。更具体地说,我最终有两个 Haproxy 进程在运行(一个是旧的,另一个是新的)。
有什么改变吗?
答案1
这是预期的行为,但只有在您有长时间运行的连接时才会注意到。旧进程将继续运行,直到它处理的所有连接都完成。
例如,在我们 Web 服务器的 haproxy 实例上,旧进程会在几秒钟内消失。但由于 Outlook 和 Active Sync 连接,我们 Exchange 服务器前面的 haproxy 实例可能会保留旧进程数天。
因此,在您的例子中,我认为您只是幸运地打开了一个长连接,从而阻止了旧进程退出。