Commit Graph
2 Commits
Author SHA1 Message Date
ruslan 4e8f5c3b36 Обновить fedora/99-tailscale-resume.sh
Перенос в fedora folder
2026-09-18 07:42:37 +00:00
ruslan 8b52fa63ec Добавить fedora/tailscale-sleep.sh
Логика работы /etc/systemd/system-sleep/tailscale-sleep.sh построена на выполнении действий непосредственно в момент подготовки операционной системы к переходу в режим энергосбережения:

    Перехват события systemd

        При переходе в сон systemd вызывает все скрипты из директории /etc/systemd/system-sleep/, передавая аргумент $1 = pre (перед сном). После пробуждения передается аргумент post.

        Скрипт проверяет if [ "$1" = "pre" ], чтобы выполняться только в момент засыпания.

    Проверка состояния VPN

        Команда tailscale status &>/dev/null проверяет, активен ли в данный момент Tailscale.

        Если отключен: Скрипт сразу завершает работу, не совершая лишних действий.

        Если активен: Скрипт переходит к шагам отключения и уведомления.

    Идентификация пользователя графической сессии

        ls /run/user/ | grep -E '^[0-9]+$' находит UID вошедшего пользователя (обычно 1000).

        id -nu "$USER_ID" получает логин этого пользователя (например, ruslan).

    Отправка уведомления в KDE/Wayland

        Поскольку скрипт запущен от root, прямо вызывать notify-send нельзя.

        Конструкция systemd-run --machine="${ACTIVE_USER}@.host" --user пробрасывает вызов команды notify-send в пользовательскую сессию, благодаря чему выводится системное всплывающее окно "Отключение перед уходом в сон...".

    Корректный разрыв соединения

        Выполняется tailscale down. VPN-туннель штатно закрывается до того, как отключится Wi-Fi модуль или сетевая карта ноутбука.

    Логирование (для отладки)

        exec &> /tmp/tailscale-sleep.log перенаправляет весь вывод скрипта в текстовый файл.

        set -x включает пошаговое логирование каждой выполняемой строчки для упрощения диагностики.
2026-09-18 07:39:56 +00:00