Aqui está um exemplo de um arquivo simples que criei em um ambiente em que eu tinha flexibilidade limitada e não estava usando nenhum mecanismo de controle de serviço. Esse script era executável e no caminho e foi executado para iniciar ou recarregar o HAProxy. Personalize com seus caminhos. Quebras de linha adicionadas para maior clareza:
#!/usr/bin/bash
echo "validating configuration..."
/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c \
&& echo "config is valid, reloading..." \
&& /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg \
-p /var/run/haproxy.pid \
-sf $(cat /var/run/haproxy.pid)
O -f
especifica o arquivo de configuração, -c
verifica a configuração. Se isso falhar, o &&
impede o recarregamento porque a primeira execução do HAProxy (validando a configuração) sai diferente de zero.
Na segunda invocação, -p
especifica o arquivo pid para o qual o novo processo deve gravar seu id de processo, e -sf
direciona o HAProxy a fazer um recarregamento, assumindo o controle do número de processo retornado do antigo arquivo existente. Isso fará com que o processo antigo seja encerrado assim que todas as conexões existentes forem drenadas.