文章目錄
-
- 概要
- 整體架構流程
- 技術名詞解釋
- 技術細節
- 小結
概要
當你登錄服務器時,看到類似以下提示:
failed to send WATCHDOG: Resource temporarily unavailable
這通常和系統的 systemd
服務有關,尤其是那些啟用了 watchdog(看門狗)機制 的服務或應用。這個機制用于監控服務的健康狀態,如果服務長時間未響應,會自動重啟或觸發某些動作。
什么是 WATCHDOG?
WATCHDOG 是一種由 systemd 管理的超時監控機制。服務在運行時需要定期向 systemd 報告“我還活著”(即發送 watchdog ping),如果超時未發送,systemd 會認為服務卡死并嘗試重啟它。
?報錯含義
failed to send WATCHDOG: Resource temporarily unavailable
大致意思是當前嘗試報告 watchdog ping 失敗了,可能原因包括:
-
服務沒有正確注冊通知接口;
-
系統資源臨時不可用(如文件描述符用盡);
-
watchdog 定義了但服務未設置通知類型;
-
某些服務未以
Notify
類型運行,卻啟用了 watchdog。
細節
重啟是否有效?
情況一:你看到這個錯誤是某個 systemd 服務的日志輸出
比如某個自定義的守護進程報出這個錯誤:
重啟該服務「通常是有效的」。可以嘗試:
sudo systemctl restart your-service-name
情況二:你是剛登錄系統就看到這個錯誤
可能是某個系統服務啟動時報錯,但并不會導致系統整體不可用。
?可以重啟相關服務,也可以整體重啟服務器:
sudo reboot
如果你要檢查哪些服務可能啟用了 WATCHDOG:
systemctl show your-service-name | grep Watchdog
比如:
systemctl show myapp.service | grep Watchdog
可能會輸出:
WatchdogUSec=30s WatchdogTimestamp=...
🛠 如果你想禁用 WATCHDOG(不推薦,但臨時應急):
可以在對應的 systemd 服務配置中禁用它:
[Service]
WatchdogSec=0
然后執行:
sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl restart your-service-name
小結
情況 | 重啟是否有效 | 建議 |
---|---|---|
某個服務報錯 failed to send WATCHDOG | ?是 | 重啟服務或調整 systemd 配置 |
系統層面錯誤(頻繁) | ?有時是 | 檢查資源是否耗盡,如內存/句柄 |
只出現一次 | 安全無礙 | 可忽略或記錄觀察 |