📦 Astrill Watchdog — Astrill VPN 看门狗
v2.0.0监控 Ubuntu Linux 上的 Astrill VPN(deb GUI 包),通过 tun 接口和 ping 检测连接断开,然后自动重启 Astrill 进程以恢复连接。
详细分析 ▾
运行时依赖
版本
**重大更新:简化并优化了 Astrill VPN 看门狗,更新了重启机制。** - 完整进程重启现在使用 `pkill astrill` 和 `setsid /autostart` 以实现可靠的恢复和 GUI 兼容性。 - 只有一种重连方法:杀死整个 Astrill 进程树并使用正确的桌面会话变量重新启动。 - 安装和使用说明已简化;只需运行 `setup.sh`(无需 sudo),包含 systemd 用户服务。 - 配置现在集中在 `astrill-watchdog.sh` 顶部,带有清晰的注释,方便调整关键选项。 - 所有相关的路径、文件和命令都已明确列出,以便于透明度和故障排除。 - 移除了 README.md;文档现在直接包含在 SKILL.md 中。
安装命令
点击复制技能文档
监控 Ubuntu Linux 上的 Astrill VPN(deb GUI 包),并在 StealthVPN 隧道断开时自动重启。
功能说明
每 30 秒检查 tun0 + ping。失败时,执行完整的 Astrill 重启:
pkill astrill杀死进程树(子进程asproxy/asovpnc由父进程杀死——无需 sudo)setsid /autostart使用完整的桌面环境(DISPLAY、DBUS、WAYLAND_DISPLAY)重新启动 Astrill,以便它可以从 systemd 服务上下文初始化其 GUI/Wayland 堆栈- Astrill 自动连接到上次使用的服务器
重启失败时:记录 CRITICAL 块,下一周期继续检查。永不退出。
环境要求
- Ubuntu Linux,Astrill deb GUI 包(
/usr/local/Astrill/astrill) ping、ip、pgrep、pkill、setsid(Ubuntu 默认)- 活动的桌面会话(DISPLAY/DBUS/WAYLAND)——Astrill 重新启动需要
安装
bash setup.sh
无需 sudo。安装看门狗,创建 systemd 用户单元,并启动服务。登录时自动启用。
使用方法
astrill-watchdog.sh start # 启动看门狗(systemd 登录时也会执行)
astrill-watchdog.sh stop # 停止看门狗
astrill-watchdog.sh status # 健康摘要 + 最近 20 行日志
astrill-watchdog.sh once # 单次健康检查 + 必要时重启,然后退出
文件说明
| 路径 | 用途 |
|---|---|
~/.config/astrill-watchdog/astrill-watchdog.sh | 看门狗脚本 |
~/.config/systemd/user/astrill-watchdog.service | Systemd 用户单元 |
~/.local/state/astrill-watchdog/watchdog.log | 日志文件(5000 行轮转) |
~/.local/state/astrill-watchdog/watchdog.pid | PID 文件 |
配置
编辑 astrill-watchdog.sh 顶部的配置块:
CHECK_INTERVAL=30 # 健康检查之间的秒数
RECONNECT_WAIT=60 # 重启后等待健康检查的秒数
PING_HOST="8.8.8.8"
PING_COUNT=3
PING_TIMEOUT=3
LOG_MAX_LINES=5000
编辑后重启:systemctl --user restart astrill-watchdog.service
诊断
# 实时日志 tail -f ~/.local/state/astrill-watchdog/watchdog.log# Systemd 日志 journalctl --user -u astrill-watchdog.service -n 30
# 完整状态摘要 astrill-watchdog.sh status