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 Сценарий работает как шарм.