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í
×
    včera 20:00 | Komunita

    Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2025.

    Ladislav Hagara | Komentářů: 0
    4.10. 15:22 | IT novinky

    Na konferenci LinuxDays 2025 byl oficiálně představen nový router Turris Omnia NG.

    Ladislav Hagara | Komentářů: 19
    4.10. 05:22 | Komunita

    Přímý přenos (YouTube) z konference LinuxDays 2025, jež probíhá tento víkend v Praze v prostorách FIT ČVUT. Na programu je spousta zajímavých přednášek.

    Ladislav Hagara | Komentářů: 11
    3.10. 22:44 | IT novinky

    V únoru loňského roku Úřad pro ochranu osobních údajů pravomocně uložil společnosti Avast Software pokutu 351 mil. Kč za porušení GDPR. Městský soud v Praze tuto pokutu na úterním jednání zrušil. Potvrdil ale, že společnost Avast porušila zákon, když skrze svůj zdarma dostupný antivirový program sledovala, které weby jeho uživatelé navštěvují, a tyto informace předávala dceřiné společnosti Jumpshot. Úřad pro ochranu osobních údajů

    … více »
    Ladislav Hagara | Komentářů: 5
    3.10. 19:00 | Nová verze

    Google Chrome 141 byl prohlášen za stabilní. Nejnovější stabilní verze 141.0.7390.54 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 21 bezpečnostních chyb. Za nejvážnější z nich (Heap buffer overflow in WebGPU) bylo vyplaceno 25 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    3.10. 17:11 | Upozornění

    eDoklady mají kvůli vysoké zátěži technické potíže. Ministerstvo vnitra doporučuje vzít si sebou klasický občanský průkaz nebo pas.

    Ladislav Hagara | Komentářů: 14
    3.10. 17:00 | Komunita

    Novým prezidentem Free Software Foundation (FSF) se stal Ian Kelling.

    Ladislav Hagara | Komentářů: 1
    3.10. 14:33 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za září (YouTube).

    Ladislav Hagara | Komentářů: 0
    3.10. 12:33 | Upozornění

    Vyšla kniha Počítačové programy a autorské právo. Podle internetových stránek nakladatelství je v knize "Významný prostor věnován otevřenému a svobodnému softwaru, jeho licencím, důsledkům jejich porušení a rizikům „nakažení“ proprietárního kódu režimem open source."

    javokajifeng | Komentářů: 0
    3.10. 01:11 | Bezpečnostní upozornění

    Red Hat řeší bezpečnostní incident, při kterém došlo k neoprávněnému přístupu do GitLab instance používané svým konzultačním týmem.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (38%)
     (45%)
     (16%)
     (18%)
     (20%)
     (15%)
     (18%)
     (16%)
     (16%)
    Celkem 176 hlasů
     Komentářů: 12, poslední 4.10. 20:35
    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: 602×

    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.