Linux

Bacula 守護程序無法停止或重新啟動

  • February 9, 2015

**前言:**我已經解決了這個問題,並提出這個問題來分享我找到的解決方案。請記住,這裡描述的問題可能(也可能不是)更通用,不僅適用於 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 的機器上,在其他幾台機器上它工作得很好。

/etc/bacula/bacula-fd.conf受影響機器上的 FileDaemon 部分:

文件守護程序 {
名稱 =(此處為名稱)
FDAAddress =(此處為公共 IP)
埠 = 13802
工作目錄 = /var/lib/bacula
Pid 目錄 = /var/run/bacula
最大並發作業數 = 20
}

還有一個來自未受影響的機器:

文件守護程序 {
名稱 =(此處為名稱)
埠 = 9102
工作目錄 = /var/lib/bacula
Pid 目錄 = /var/run/bacula
最大並發作業數 = 20
FDA地址 = 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腳本就像魅力一樣工作。

引用自:https://serverfault.com/questions/604645