Bacula 守護程序無法停止或重新啟動
**前言:**我已經解決了這個問題,並提出這個問題來分享我找到的解決方案。請記住,這裡描述的問題可能(也可能不是)更通用,不僅適用於 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
腳本就像魅力一樣工作。