当 Adguard Home 解析不了 DNS 时自动重启
在使用 Adguard Home 的过程中,偶尔会出现 DNS 解析不了,但 Web 控制界面可以正常访问,只是会显示更新信息获取失败。 一般重启后可恢复正常。
最近,频繁遇到这个问题,因此想让它自动重启。
首先找的是 Systemd 有无监控功能,因为用 Systemd 自动启动 Adguard Home 。发现 Systemd 有个 watchdog 的功能,但看了下网上仅有的几篇文章(e.g. 利用 systemd 的 watchdog 功能重启卡住的服务 - 依云's Blog),感觉「定时 ping 一个域名然后重启服务」会比较简单。
然后,找到了 Sytemd 配置中的关键参数: BindsTo
, Requires
, After
, RestartSec
, Restart
。
上例子:
最后,是用 Python 写的执行 shell 的脚本。(Python 系统自带)