From 4d45bed2753b675fe4119439f9e0739c91b3730a Mon Sep 17 00:00:00 2001 From: ruslan Date: Fri, 18 Sep 2026 07:33:12 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=2099-tailscale-resume.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В Сценарии 2 вместо проверки if [ -f /run/tailscale-suspended ] теперь стоит if ! tailscale status &>/dev/null. Теперь скрипт не просто восстанавливает соединение после сна, а принудительно поднимет Tailscale при переключении на любую сеть (Wi-Fi, провод, мобильный хотспот), если он был выключен, исключая только сеть AirPort --- 99-tailscale-resume.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/99-tailscale-resume.sh b/99-tailscale-resume.sh index f6ac21b..2e56bdb 100644 --- a/99-tailscale-resume.sh +++ b/99-tailscale-resume.sh @@ -1,4 +1,7 @@ #!/bin/bash +exec &> /tmp/tailscale-resume.log +set -x + INTERFACE="$1" ACTION="$2" @@ -16,6 +19,7 @@ send_notification() { ACTIVE_USER=$(id -nu "$USER_ID" 2>/dev/null) if [ -n "$ACTIVE_USER" ]; then + # Задержка для готовности DBus sleep 1 systemd-run --machine="${ACTIVE_USER}@.host" --user \ notify-send -i "$icon" "$title" "$message" @@ -27,7 +31,7 @@ if [ "$ACTION" = "up" ]; then CURRENT_SSID=$(nmcli -t -f active,ssid dev wifi 2>/dev/null | grep '^yes:' | cut -d: -f2) - # Сценарий 1: Сеть AirPort -> Отключение Tailscale + # Сценарий 1: Сеть AirPort -> Принудительное отключение if [ "$CURRENT_SSID" = "AirPort" ]; then if tailscale status &>/dev/null || [ -f /run/tailscale-suspended ]; then tailscale down @@ -37,14 +41,14 @@ if [ "$ACTION" = "up" ]; then exit 0 fi - # Сценарий 2: Любая другая сеть -> Гарантированное подключение + # Сценарий 2: Любая другая сеть -> Автоматическое подключение if ! tailscale status &>/dev/null; then if tailscale up; then rm -f /run/tailscale-suspended send_notification "network-vpn" "Tailscale" "Автоматически подключен" fi else - # Если VPN уже был активен, просто убираем маркер сна + # Если Tailscale уже был активен, просто очищаем маркер сна rm -f /run/tailscale-suspended fi fi \ No newline at end of file