Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 重啟 Gearman 服務完整指南:解決 ServerUnavailable 錯誤

編輯:Linux 系統常見問題解答

問題背景

當 Gearman 服務意外停止時,客戶端程式會拋出 gearman.errors.ServerUnavailable: Found no valid connections 錯誤。這通常發生在伺服器重啟或服務異常終止後。錯誤堆疊明確指向 localhost:4730 連線失敗,確認是 Gearman Job Server 未運行。

快速排查與修復步驟

1. 檢查日誌目錄權限

執行 gearmand -d 時若提示 /var/log/gearman/gearman.log 不存在,需手動建立目錄與檔案:

mkdir -p /var/log/gearman
touch /var/log/gearman/gearman.log
chown -R gearman:gearman /var/log/gearman  # 確保服務帳號有寫入權限

2. 前景模式啟動(除錯用)

gearmand --log-file=/var/log/gearman/gearman.log --listen=127.0.0.1 --port=4730 --verbose=INFO

此模式下日誌直接輸出至終端,方便即時觀察錯誤。

3. 背景常駐模式(生產環境建議)

gearmand --log-file=/var/log/gearman/gearman.log --listen=127.0.0.1 --port=4730 --verbose=INFO --daemon
  • --listen:綁定本地回環介面,拒絕外部直接存取,提升安全性
  • --port:預設 4730,可依防火牆規則調整
  • --daemon:以守護進程方式運行

4. 驗證服務狀態

netstat -tlnp | grep 4730
# 或
telnet 127.0.0.1 4730

若顯示 LISTEN 狀態或連線成功,即表示服務已正常啟動。

進階建議:使用 Systemd 管理

建立 /etc/systemd/system/gearmand.service:

[Unit]
Description=Gearman Job Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/gearmand --log-file=/var/log/gearman/gearman.log --listen=127.0.0.1 --port=4730 --daemon
PIDFile=/var/run/gearmand.pid
User=gearman
Group=gearman

[Install]
WantedBy=multi-user.target

隨後執行:

systemctl daemon-reload
systemctl enable --now gearmand
systemctl status gearmand

如此即可實現開機自啟、異常自動重啟等生產級管理。

Copyright © Windows教程網 All Rights Reserved