まえがき:私はすでにこの問題を解決しており、私が見つけた解決策を共有するためにこの質問をしています。ここで説明する問題は、より一般的である場合もあれば、そうでない場合もあり、Baculaだけでなく他のサービスにも当てはまる可能性があることに注意してください。これはパッケージングの問題のように思われるため、Debian固有の場合もありますが、現在、他のディストリビューションでテストすることはできません。
質問:
Baculaインストールのセットアップファイルデーモンの特殊な動作に遭遇しました:
/etc/init.d/bacula-fd start
デーモンを起動しますOK/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ファイルは、常駐するように構成されており、その内容が正しい場所に存在します。
システムはDebianWheezyで、Baculaのバージョンは5.2.6(Wheezyリポジトリで入手可能な最新のもの)です。
この問題は、Baculaがインストールされている一部のマシンでのみ発生し、他のいくつかのマシンでは問題なく動作します。
影響を受けるマシンの/etc/bacula/bacula-fd.conf
のFileDaemonセクション:
FileDaemon { 名前=(ここに名前) FDAddress =(ここにパブリックIP) FDport = 13802 WorkingDirectory =/var/lib/bacula Pid Directory = /var/run/bacula 最大同時ジョブ数= 20 }
そして、影響を受けていないマシンからのもの:
FileDaemon { 名前=(ここに名前) FDport = 9102 WorkingDirectory =/var/lib/bacula PidDirectory =/var/run/bacula 最大同時ジョブ数= 20 FDAddress = 192.168.1.10
これが解決されない場合、スクリプトを使用してすべてのBaculaマシンに構成変更を自動的に適用することはできません。この動作の原因は何である可能性があり、これを解決するにはどうすればよいですか?
問題の一部は構成ファイル内にあり、一部は他の場所にあります。 Baculaがインストールされた20台のマシンのいくつかで、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ファイルデーモン bacula-fd 13802/udp
これで、/etc/init.d/bacula-fd
スクリプトが魅力のように機能します。