Hlavní navigace

Názor k článku Nebojte se systemd: co to je a co umí? od Heron - Jak tedy v shellu řešíte to, že zjistíte...

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

  • 24. 5. 2016 11:03

    Heron

    Jak tedy v shellu řešíte to, že zjistíte stav, po té dáte pokyn ke změně – jenže mezi tím se stav mohl změnit?

    Jak se mohl změnit? Sám od sebe se nezmění. Služba, která běží, mohla náhodou spadnout, ale já nepoužívám služby, které jen tak padají (uptime 3 roky u mě znamená, že démoni, kteří nastartovaly při bootu běží 3 roky, nic menšího neakceptuji). I kdyby se vypnula, tak co? Pokud dám příkaz start, tak se znova zapne. Pokud dám stop, tak se neprovede nic. Pokud dám restart po změně konfigurace, tak se znova nahodí. V praxi navíc stav služeb nezjišťuji, takže se nedostanu do situace, že se mezitím změnil. Udělám rovnou tu akci, kterou chci. 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.

    Není lepší ten opakující se kód někam vytknout a v konfiguraci služby nechat jenom ty dva řádky?

    Ano, hromada rc systému přesně takhle vypadá. Ani nepoznáte, že píšete v bashi, protože vše společné je v základu.

    Přičemž pořád nevím, proč jsou dva, normální procesy se ukončují zasláním signálu.

    No tak si tam tu stop akci nedávejte a nechte jen volat sigterm. 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. Pokud je nepotřebují, ExecStop nechte prázdný.