O daemon Bacula não consegue parar ou reiniciar

1

Prefácio: Já resolvi este problema e estou a fazer esta pergunta para partilhar a solução que encontrei. Por favor, tenha em mente que o problema descrito aqui pode (ou não) ser mais genérico e pode ser aplicado não apenas ao Bacula, mas também a outros serviços. Ele também pode ser específico do Debian, já que este parece ser o caso do empacotamento, mas atualmente não posso testá-lo em nenhuma outra distribuição.

A pergunta:

Configurando uma instalação do Bacula Eu encontrei um comportamento peculiar do daemon de arquivo:

  • /etc/init.d/bacula-fd start inicia o daemon OK
  • /etc/init.d/bacula-fd stop falha ao parar o daemon
  • conseqüentemente, /etc/init.d/bacula-fd restart também falha (o PID não muda), portanto, a nova configuração não se aplica
  • /etc/init.d/bacula-fd status retorna bacula-fd is not running ... failed! , embora ps aux | grep bacula-fd mostre que o daemon está, na verdade, sendo executado

O arquivo PID está presente onde está configurado para residir e seu conteúdo está correto.

O sistema é Debian Wheezy, a versão do Bacula é 5.2.6 (a mais recente disponível no repositório Wheezy).

O problema existe apenas em algumas das máquinas onde o Bacula está instalado, em vários outros funciona bem.

A seção FileDaemon de /etc/bacula/bacula-fd.conf em uma máquina afetada:

FileDaemon {
  Name = (name here)
  FDAddress = (public IP here)
  FDport = 13802
  WorkingDirectory = /var/lib/bacula
  Pid Directory = /var/run/bacula
  Maximum Concurrent Jobs = 20
}

E um de uma máquina não afetada:

FileDaemon {
  Name = (name here)
  FDport = 9102
  WorkingDirectory = /var/lib/bacula
  Pid Directory = /var/run/bacula
  Maximum Concurrent Jobs = 20
  FDAddress = 192.168.1.10

Se eu não obtiver isso resolvido, não posso empregar scripts para aplicar automaticamente alterações de configuração em todas as minhas máquinas Bacula. O que poderia ser a causa desse comportamento e como resolvo isso?

    
por Erathiel 12.06.2014 / 15:43

1 resposta

3

O problema está parcialmente dentro dos arquivos de configuração e parcialmente em outro lugar. Em algumas das 20 máquinas em que o Bacula foi instalado, alterei a porta padrão na qual o bacula-fd está escutando (tinha razões para isso) e isso provou ser a raiz do problema. Quanto ao /etc/bacula/bacula-fd.conf , a linha relevante é esta: FDport = 13802 .

A coisa é /etc/init.d/bacula-fd tem a porta codificada (e adicionalmente sobrescrita por um valor retornado por getent services bacula-fd call) e não a extrai do arquivo de configuração bacula-fd. Isso não impede que o script init.d inicie o daemon, mas causa problemas ao verificar seu estado, parando e, consequentemente, reiniciando.

Para resolver isso, modifiquei o /etc/init.d/bacula-fd changing PORT=9102 para o número de porta correto: PORT=13802 . Além disso, editei o arquivo /etc/services , localizei as linhas relevantes e as modifiquei da seguinte forma:

bacula-fd       13802/tcp                        # Bacula File Daemon
bacula-fd       13802/udp

Agora, o script /etc/init.d/bacula-fd funciona como charme.

    
por 12.06.2014 / 15:43