Hlavní navigace

Názor k článku Nebojte se systemd: co to je a co umí? od Filip Jirsák - Jak se mohl změnit? Sám od sebe se...

Článek je starý, nové názory již nelze přidávat.

  • 24. 5. 2016 11:29

    Filip Jirsák

    Jak se mohl změnit? Sám od sebe se nezmění.
    Sám od sebe se nezmění, ale může ho změnit nějaká událost nebo někdo jiný. Například zkontrolujete konfiguraci služby, je OK, tak necháte službu znovu konfiguraci načíst – jenže mezi tím došlo ke změně konfigurace. Třeba to způsobí nějaký automat jako utilita pro Let's Encrypt. Nebo nějaká úloha z cronu, třeba něco jako logrotate. Možná s tou konfigurací bude takový nástroj dokonce pracovat „bezpečně“, takže odstraní původní soubor a pak tam nahraje nový. A zrovna v tom okamžiku, kdy tam soubor nebude, se ho pokusí služba načíst. A možná dokonce bude chytrá, a když zjistí, že konfigurační soubor neexistuje, vytvoří nový defaultní. Pak se dostane ke slovu ta utilita, která tam chtěla nakopírovat tu změněnou konfiguraci, a spadne, protože nepředpokládala, že tam ten soubor bude.

    Ano, je to nepravděpodobné. Ale rozhraní, které je postavené na tom, že špatně funguje jenom občas, není dobré.

    Ano, teoreticky lze vymyslet hromadu race, které jsou ale jen teoretické, protože v běžné praxi nenastanou, protože se ten systém používá určitým způsobem.
    Tenhle způsob uvažování stojí za všemi problémy se souběhem akcí.

    Jsou některé procesy, které (ačkoliv samozřejmě reagují na sigterm) tak mohou před samotným ukončením potřebovat ještě nějaké činnosti.
    Pak to mají dělat v reakci ne ten signál. Jinak opět může dojít k tomu, že necháte provést akce před ukončením, ale k samotnému ukončení pak už nedojde.