diff --git a/family/how-to/htpc-system.md b/family/how-to/htpc-system.md index 7b142f14..4b1743ab 100644 --- a/family/how-to/htpc-system.md +++ b/family/how-to/htpc-system.md @@ -124,11 +124,15 @@ Sleep управляется `htpc-sleep-guard` — Python-скрипт + system | Сервис | Статус | Роль | |---|---|---| -| `htpc-sleep-guard` | **active/enabled** | актуальный guard | +| `htpc-sleep-guard` | **active/enabled** | актуальный guard (SSH + торренты + rsync-файл) | | `transmission-sleep-guard` | disabled | старый, отключён (дублировал и держал ингибитор постоянно) | ### Логика guard +**Всегда (вне зависимости от времени):** +- Активная SSH сессия → держит inhibitor (HTPC не спит) +- Файл `/tmp/rsync-active` существует → держит inhibitor (rsync, бэкап и т.п.) + **Дневное окно (11:00–23:00):** - Торренты активны → держит systemd inhibitor (HTPC не спит) - Торренты не активны → inhibitor не держится, machine idle @@ -147,6 +151,26 @@ Sleep управляется `htpc-sleep-guard` — Python-скрипт + system - **409 retry**: при HTTP 409 от Transmission обновляет `X-Transmission-Session-Id` и повторяет запрос - **suspend trigger**: при переходе из "hold → release" вызывает `systemctl suspend` (без sudo, через polkit/logind) +Патч 2026-05-30 (rsync-active триггер): +- Добавлена функция `rsync_active()` — проверяет существование файла `/tmp/rsync-active` +- Guard держит inhibit пока файл существует (вне зависимости от времени) +- Исправлена обработка ошибок: `torrents_active()` и `ssh_active()` обёрнуты в отдельные `try/except` +- Использование: `touch /tmp/rsync-active` (включить), `rm /tmp/rsync-active` (выключить) + +### rsync-active триггер + +Любой процесс может держать HTPC в бодрствующем состоянии, создав файл `/tmp/rsync-active`: + +```bash +# Запретить сон (например, перед долгим rsync/bkp) +touch /tmp/rsync-active + +# Разрешить сон (после завершения) +rm /tmp/rsync-active +``` + +Guard проверяет файл каждые 60 секунд. Сервис: `systemctl --user status htpc-sleep-guard`. + ### Разбудить/усыпить вручную ```bash diff --git a/family/how-to/htpc.md b/family/how-to/htpc.md index df5464ec..2ae3e14a 100644 --- a/family/how-to/htpc.md +++ b/family/how-to/htpc.md @@ -44,6 +44,11 @@ print('Magic packet sent') ping -c 5 192.168.1.86 ``` +### Sleep management +HTPC использует `htpc-sleep-guard` — см. [[htpc-system#Автосон / Sleep management]]. +Чтобы не дать HTPC уснуть во время долгой операции: `touch /tmp/rsync-active` на HTPC. +По окончании: `rm /tmp/rsync-active`. + ### Если не просыпается WoL должен быть включён в BIOS/UEFI. Проверить настройки на HTPC (пока он живой): ```bash