web-dev-qa-db-ja.com

Baculaデーモンが停止または再起動に失敗する

まえがき:私はすでにこの問題を解決しており、私が見つけた解決策を共有するためにこの質問をしています。ここで説明する問題は、より一般的である場合もあれば、そうでない場合もあり、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マシンに構成変更を自動的に適用することはできません。この動作の原因は何である可能性があり、これを解決するにはどうすればよいですか?

1
Erathiel

問題の一部は構成ファイル内にあり、一部は他の場所にあります。 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スクリプトが魅力のように機能します。

3
Erathiel