Pesquisou mais documentação e finalmente encontrou:
notify_stop "/usr/local/bin/vrrp-state fault"
Funciona como esperado .... X -}
Estou executando mantido o serviço sob o Debian (Lenny, Squeeze) de forma bastante justa configuração simples, eu estou apenas (ab) usando-o como um daemon VRRP para decidir o maestria entre duas máquinas iguais para alguns IPs virtuais. Toda a mágica acontece no notify -script.
Quando eu paro o daemon completamente (usando o init-script do debian) keepalived faz Não execute o script de notificação para backup ou, pelo menos, o modo de falha, que é o que eu suspeitaria e precisaria.
Eu poderia "consertar" o script rc com alguns efeitos indesejados - o O script notify seria codificado no script rc, introduzindo um acoplamento indesejado destes dois e a bagunça de portar o patch para o próximas versões do Debian, então esta não é a maneira que eu realmente quero ir ...
Quaisquer sugestões para uma solução mais limpa para este problema?
vrrp_instance FOORRP {
virtual_router_id 42
interface eth0
state BACKUP
priority 200
nopreempt
authentication {
auth_type AH
auth_pass foobar42
}
notify "/usr/local/bin/vrrp-state"
virtual_ipaddress {
127.0.0.2
}
}
PS: o uso dos scripts "three notify _" não altera nada
PPS: no changelog (release 1.1.16) há algo mencionado, que de alguma forma se encaixa no meu problema (embora eu não esteja usando nada relacionado ao lvs no keepalived), mas estou usando uma versão mais recente (1.1.20): "notify_down não é executado para servidores reais em funcionamento no keepalived desligamento. "
Eu enfrentei esse problema recentemente e descobri que é lógico não executar esses scripts. Esses scripts são executados no caso de eventos específicos, como se tornar um mestre ou um escravo. O processo de manutenção de energia não deve ser desligado a menos que seja feito manualmente e há uma boa razão para isso. Se você está preocupado com a falha no processo keepalived (não é o caso de desligá-lo manualmente), você pode usar monit . É uma ótima ferramenta para monitorar seus processos em execução e reiniciá-los se alguém falhar.
Como você mencionou, você pode simplesmente modificar o script de inicialização do keepalived para executar o script desejado (como parar outro serviço). Acho que isso será mais limpo do que consertar o código keep-alive, mantendo-o você mesmo e fazendo o patch necessário sempre que quiser reinstalá-lo / atualizá-lo.
Tags debian keepalived