Bacula Daemon не может остановить или перезапустить

Предисловие: Я уже решил эту проблему и задаю этот вопрос, чтобы поделиться найденным решением. Пожалуйста, имейте в виду, что описанная здесь проблема может (или не может) быть более общей и может относиться не только к Bacula, но и к другим услугам. Это также может быть специфично для Debian, так как кажется, что это вопрос упаковки, но в настоящее время я не могу протестировать его на любом другом дистрибутиве.

Вопрос:

При установке Bacula я столкнулся со странным поведением файлового демона:

  • /etc/init.d/bacula-fd start запускает демон ОК
  • /etc/init.d/bacula-fd stop не может остановить демон
  • как следствие /etc/init.d/bacula-fd restart также происходит сбой (PID не изменяется), поэтому новая конфигурация не применяется
  • /etc/init.d/bacula-fd status возвращается bacula-fd is not running ... failed! даже если ps aux | grep bacula-fd показывает, что демон на самом деле работает

Файл PID присутствует там, где он сконфигурирован, и его содержимое корректно.

Система Debian Wheezy, версия Bacula - 5.2.6 (последняя версия доступна в репозитории Wheezy).

Проблема существует только на некоторых машинах, на которых установлена ​​Bacula, на некоторых других она работает просто отлично.

Раздел FileDaemon от /etc/bacula/bacula-fd.conf на зараженной машине:

FileDaemon {
  Имя = (имя здесь)
  FDAddress = (публичный IP здесь)
  FDport = 13802
  WorkingDirectory = /var/lib/bacula
  Pid Directory = /var/run/bacula
  Максимальное количество одновременных заданий = 20
}

И один из незатронутой машины:

FileDaemon {
  Имя = (имя здесь)
  FDport = 9102
  WorkingDirectory = /var/lib/bacula
  Pid Directory = /var/run/bacula
  Максимальное количество одновременных заданий = 20
  FDAddress = 192.168.1.10

Если я не решу эту проблему, я не смогу использовать сценарии для автоматического применения изменений конфигурации на всех моих машинах Bacula. Что может быть причиной такого поведения и как мне решить эту проблему?

1 ответ

Решение

Проблема частично в файлах конфигурации и частично в другом месте. На некоторых из 20 машин, на которых был установлен Bacula, я изменил порт по умолчанию, на котором слушает bacula-fd (имел причины для этого), и это оказалось причиной проблемы. Для /etc/bacula/bacula-fd.conf соответствующая строка это: FDport = 13802,

Дело в том /etc/init.d/bacula-fd имеет порт в жестком коде (и дополнительно перезаписан значением, возвращаемым getent services bacula-fd вызов) и не извлекает его из файла конфигурации bacula-fd. Это не мешает сценарию init.d запустить демон, но вызывает проблемы с проверкой его состояния, остановкой и, следовательно, перезапуском.

Чтобы решить эту проблему, я изменил /etc/init.d/bacula-fd изменения PORT=9102 на правильный номер порта: PORT=13802, Дополнительно я отредактировал /etc/services файл, нашел соответствующие строки и изменил их следующим образом:

bacula-fd 13802 / tcp # Bacula File Daemon
bacula-fd 13802 / удп

Теперь /etc/init.d/bacula-fd Сценарий работает как шарм.

Другие вопросы по тегам