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