Portál AbcLinuxu, 8. května 2025 04:19
Zdravím, trochu předělávám HTPC na Lubuntu 16.04 + KODI + TVHeadEnd a marně hledám řešení na následující problém.
Rád bych, aby KODI v idle stavu (je k tomu nějaký add-on, který sleduje stav TVHeadEndu) uspal počítač. Bohužel mu nejde nadefinovat, jakým příkazem jej má uspat, asi používá dbus + polkit + kdovíco v rámci standardního Ubuntu.
V každém případě to vypadá, že suspend to RAM z KODI vede ke spuštění "systemctl suspend", který skončí zatuhnutím počítače (blikající kurzor konzole na černé obrazovce).
Dobrá zpráva je, že staré dobré "pm-suspend" stále funguje, takže by mohlo stačit vzít mé /etc/pm/sleep.d/ skripty a navěsit na systemd. Po pročtení https://wiki.archlinux.org/index.php/Power_management#Sleep_hooks jsem pár z možností vyzkoušel, jenže ouha:
service se při systemctl suspend spustí, systemd však na nic nečeká a pokračuje v uspávání bez ohledu na _výsledek_ mého skriptu.
[Unit] Description=Local system suspend actions Before=sleep.target [Service] Type=simple ExecStart=/etc/pm/sleep.d/01_kodi suspend [Install] WantedBy=sleep.target
Jak to tak chápu, tak volba "Before=" se postará pouze o _spuštění_ mého skriptu. Pokud včas selže (exit 1 hned na začátku skriptu), tak se to objeví v logu, ale suspend běží dál.
V praxi však ani nestačí případně selhat (ukončuje nějaké služby a odstraňuje USB moduly), počítač se dříve dostane v procesu uspávání do bodu zamrznutí... Čili "hook" poměrně k ničemu.
Poradíte někdo, jak donutit systemd, aby nejprve spustil můj skript a poté případně pokračoval v uspávání počítače?
Řešení dotazu:
Tak jen pro úplnost doplním:
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.