From 7ce2c58edda0949801b708251a87c63cd4753cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9=20=D0=91=D0=BE=D0=B1?= =?UTF-8?q?=D1=8B=D1=80=D0=B5=D0=B2?= Date: Tue, 28 Apr 2026 20:43:23 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20cron-watchdog=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D1=82=D1=83=D0=BD=D0=BD=D0=B5=D0=BB=D1=8F=20=E2=80=94=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=20autoss?= =?UTF-8?q?h=20=D0=BA=D0=B0=D0=B6=D0=B4=D1=83=D1=8E=20=D0=BC=D0=B8=D0=BD?= =?UTF-8?q?=D1=83=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавлена запись в crontab роутера при установке туннеля: * * * * * killall -0 autossh || /opt/etc/init.d/S99hydra_tun start При удалении (Снести с роутера) — cron-задача тоже удаляется. --- server/main.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/main.py b/server/main.py index 9d49ad6..3834c41 100644 --- a/server/main.py +++ b/server/main.py @@ -484,6 +484,11 @@ esac INITEOF chmod +x /opt/etc/init.d/S99hydra_tun +# Cron-watchdog: каждую минуту проверяет autossh и перезапускает если упал +CRON_JOB="* * * * * killall -0 autossh 2>/dev/null || /opt/etc/init.d/S99hydra_tun start" +( crontab -l 2>/dev/null | grep -v 'S99hydra_tun'; echo "$CRON_JOB" ) | crontab - +echo 'Watchdog cron установлен' + echo '[4/4] Запуск...' killall autossh 2>/dev/null || true sleep 1 @@ -893,6 +898,9 @@ rm -f /opt/etc/hydra_tk && echo 'SSH-ключ туннеля удалён' || tr rm -f /opt/etc/wireguard/wg0.conf /opt/etc/wireguard/wg0.key 2>/dev/null && echo 'WireGuard конфиг удалён' || true rm -f /tmp/hydra_tun.log /tmp/rci.jar /tmp/wg_rci.json 2>/dev/null || true +# Удалить watchdog из crontab +( crontab -l 2>/dev/null | grep -v 'S99hydra_tun' ) | crontab - && echo 'Watchdog cron удалён' || true + for i in $(seq 50 70); do ip link show nwg$i >/dev/null 2>&1 && ip link delete nwg$i && echo "nwg$i удалён" done