abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 14:22 | IT novinky

    Herní studio Hangar 13 vydalo novou Mafii. Mafia: Domovina je zasazena do krutého sicilského podsvětí na začátku 20. století. Na ProtonDB je zatím bez záznamu.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | IT novinky

    Operátor O2 má opět problémy. Jako omluvu za pondělní zhoršenou dostupnost služeb dal všem zákazníkům poukaz v hodnotě 300 Kč na nákup telefonu nebo příslušenství.

    Ladislav Hagara | Komentářů: 4
    dnes 05:55 | IT novinky

    Společnost OpenAI představila GPT-5 (YouTube).

    Ladislav Hagara | Komentářů: 0
    dnes 05:00 | Nová verze

    Byla vydána (𝕏) červencová aktualizace aneb nová verze 1.103 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.103 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 17:33 | IT novinky

    Americký prezident Donald Trump vyzval nového generálního ředitele firmy na výrobu čipů Intel, aby odstoupil. Prezident to zdůvodnil vazbami nového šéfa Lip-Bu Tana na čínské firmy.

    Ladislav Hagara | Komentářů: 7
    včera 16:55 | Nová verze

    Bylo vydáno Ubuntu 24.04.3 LTS, tj. třetí opravné vydání Ubuntu 24.04 LTS s kódovým názvem Noble Numbat. Přehled novinek a oprav na Discourse.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Nová verze

    Byla vydána verze 1.89.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | IT novinky

    Americká technologická společnost Apple uskuteční v USA další investice ve výši sta miliard dolarů (2,1 bilionu korun). Oznámil to ve středu šéf firmy Tim Cook při setkání v Bílém domě s americkým prezidentem Donaldem Trumpem. Trump zároveň oznámil záměr zavést stoprocentní clo na polovodiče z dovozu.

    Ladislav Hagara | Komentářů: 4
    včera 04:55 | Nová verze

    Zálohovací server Proxmox Backup Server byl vydán v nové stabilní verzi 4.0. Založen je na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    6.8. 16:33 | Nová verze

    Byla vydána nová verze 1.54.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Jan Václav.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (44%)
     (22%)
     (4%)
     (6%)
     (3%)
     (1%)
     (1%)
     (19%)
    Celkem 297 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    Rozcestník

    Dotaz: Systemd suspend - jak přerušit proces?

    7.2.2017 21:27 JanM | skóre: 28
    Systemd suspend - jak přerušit proces?
    Přečteno: 585×

    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:


    Odpovědi

    7.2.2017 21:32 JanM | skóre: 28
    Rozbalit Rozbalit vše Re: Systemd suspend - jak přerušit proces?
    Jen dodám, že dříve jsem to řešil samostatným skriptem spouštěným v pětiminutovém intervalu, který sledoval stav MythTV backendu, KODI, připojených uživatelů, SMB sdílení, atd. a byl-li šťasten, tak uspal počítač.

    Byl v tom trochu zmatek, raději bych to řešil "jednoduše" z KODI...
    k3dAR avatar 7.2.2017 23:10 k3dAR | skóre: 63
    Rozbalit Rozbalit vše Re: Systemd suspend - jak přerušit proces?
    kdyz uz mas na HTPC vyklestene Lubuntu, co vyklestit i systemd? *buntu 16.04 ma pri startu v grub advanced volbu i jako upstart ve vychozi instalaci, dela to jen pouzitim kernel parametru: init=/sbin/upstart
    porad nemam telo, ale uz mam hlavu... nobody
    8.2.2017 07:23 JanM | skóre: 28
    Rozbalit Rozbalit vše Re: Systemd suspend - jak přerušit proces?
    Zajímavá informace, ale tomu bych se raději vyhnul. Systemd používám tak jako tak (Arch Linux) a do budoucna je upstart neperspektivní...
    k3dAR avatar 8.2.2017 13:34 k3dAR | skóre: 63
    Rozbalit Rozbalit vše Re: Systemd suspend - jak přerušit proces?
    btw: s 16.04 to mas perspektivni do roku 2021 ;)
    porad nemam telo, ale uz mam hlavu... nobody
    8.2.2017 07:26 JanM | skóre: 28
    Rozbalit Rozbalit vše Re: Systemd suspend - jak přerušit proces?
    Tak hlavní otázka vyřešena, nutno použít /lib/systemd/system-sleep drop-in folder: pak proces uspávání počká na úplné vykonání skriptu.

    Nicméně objevila se nová otázka: jak proces uspávání přerušit, pokud skript skončí chybovým kódem (zatím je to ignorováno a počítač zatuhne...).
    8.2.2017 13:50 Peter Golis | skóre: 65 | blog: Bežné záležitosti | Bratislava
    Rozbalit Rozbalit vše Re: Systemd suspend - jak přerušit proces?
    Síce si neviem predstaviť dôvod na uspávanie HTPC, ale to nevadí. Predpokladám že ten HTPC ovládaš diaľkovým alebo klávesnicou. Nemôžeš si namapovať ten pm-suspend (alebo echo disk > /sys/power/state) na klávesu vypínania?
    8.2.2017 19:50 JanM | skóre: 28
    Rozbalit Rozbalit vše Re: Systemd suspend - jak přerušit proces?
    To neodpovídá mému využití - počítač slouží i jako NAS (wake-on-demand) a DVR (wake-on-alarm), takže se poté musí sám i vypnout. Nehledě na to, že naprostá většina spotřebičů se vypíná po čase sama, tak proč by to nemělo umět HTPC.

    V minulosti jsem to řešil přes MythTV, ve kterém lze všechny skripty nadefinovat. Ale byl pěkný opruz to vyladit a pospojovat komponenty (MythTV BE a Kodi FE + ostatní).

    Kodi má nastavení suspendu při idle (vč. vazby na TVHeadEnd) v sobě, stačí mi dodělat jeden skript na hlídání ostatních věcí (SSH, SMB) a nějak ho naroubovat na mechanismus vypínání KODI.

    P.S. Původně jsem měl v plánu tu extra kontrolu před vypnutím provádět až při "systemctl suspend", ale to už evidentně není cesty zpět (ten příkaz nedělá nic jiného, než echo blabla > /sys/disk/state a /sys/power/state, jen před tím spustí pár hooks).
    Řešení 1× (JanM (tazatel))
    10.2.2017 06:30 JanM | skóre: 28
    Rozbalit Rozbalit vše Re: Systemd suspend - jak přerušit proces?

    Tak jen pro úplnost doplním:

     

    • jak zastavit proces uspávání po 'systemctl suspend' jsem nezjistil;
    • moji situaci nakonec vyřešily doplňky Kodi: service.sleepy.watchdog a service.tvh.manager. Ten první umí po definované době nečinnosti spustit jiný doplněk Kodi a ten druhý udělá zbytek práce (zkontroluje TVHeadEnd, zda nenahrává; otevřené porty, zda není někdo vzdáleně připojen; uloží RTC alarm a spustí standardní uspání počítače).
      Podobně by to šlo řešit i přes Kodi Callbacks, tam lze vnutit i externí skripty, pokud by funkce tvh.manageru nestačily.
    Nicméně, to že v případě selhání hooks pro 'systemctl suspend' nedojde k přerušení uspávání, není nic moc, neb v mém případě počítač zatuhne a už s ním hne jen fyzické násílí (hard-reset).

     

    14.2.2017 18:12 j
    Rozbalit Rozbalit vše Re: Systemd suspend - jak přerušit proces?
    Bez polozit kytku na nahrobek potteringovi ... shit, on ho jeste nikdo nezabil?
    13.2.2017 08:08 JanM | skóre: 28
    Rozbalit Rozbalit vše Re: Systemd suspend - jak přerušit proces?
    Pro úplnost jen doplním, že důvod, proč systemd nepočkal na ukončení uvedeného skriptu byl ten, že "Type=simple" (ExecStart se jen "spustí" a na nic se nečeká) namísto "Type=Oneshot" (systemd čeká i na skončení skriptu v ExecStart).

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.