概要
当你登录服务器时,看到类似以下提示:
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 配置 |
系统层面错误(频繁) | 有时是 | 检查资源是否耗尽,如内存/句柄 |
只出现一次 | 安全无碍 | 可忽略或记录观察 |