Další článek ze série odhalující vnitřnosti systemd. Dnes dokončíme povídání o jádru systemd, představíme si generátory, obecnou konfiguraci a nakonec ještě dodatečné možnosti některých typů jednotek.

Generátory

Minule jsme zmínili generátory, které mají v systemd široké použítí. Nejčastěji slouží ke čtení konfiguračních souborů. Pokud používáme rozdělení disků GPT, můžeme jednotlivé oddíly označit jejich funkcí (pole GUID). Systemd je pak automaticky najde a připojí bez nutnosti konfigurace, např. nalezne oddíl pro domovský adresář a připojí jej do /home. Další podporované jsou boot oddíl, root, swap a serverová data určená k připojení do  /srv.

 

Další použití je pro aktualizace, které se nainstalují při dalším startu. Pokud existuje složka /system-update, Generátor systemd-system-update-generator spustí místo cíle default.target cíl system-update.target. Podobně generátor systemd-hibernate-resume-generator v případě nastavení parametru jádra resume=cesta k uložené hibernaci spustí službu systemd-hiberante-resume@.service, která po hibernaci uvede systém do původního stavu.

Pokud bychom chtěli jednotky vygenerovat znovu (např. po úpravě generátoru), stačí spustit systemctl daemon-reload, který mimo jiné spustí generátory znovu. Samozřejmě v případě disků se změny neprojeví na připojených discích, ale pouze u jednotek. Pokud bychom kupříkladu změnili připojení na pouze ke čtení, musíme oddíl odpojit a připojit, aby se změny projevily.

Obecná konfigurace systemd

Výchozí konfiguraci systemd mohou změnit nainstalované programy umístěním konfiguračního souboru do /usr/lib/systemd/system.conf.d/. Mechanismus přepisování funguje stejně jako v případě přepisu konfigurace jednotek v adresáři jmeno.d. Ještě vyšší prioritu pro konfiguraci má soubor /etc/systemd/system.conf, který je určen pro administrátora. Pokud chceme měnit konfiguraci uživatelského režimu (uživatelský režim je přepnut přepínačem --user), můžeme použít soubor /etc/systemd/user.conf. Možných umístění konfiguračních souborů je ještě více, podrobný popis může čtenář nalézt v  man systemd-system.conf.

Formát konfiguračního souboru je stejný jako ten u jednotek. Parametry nastavujeme v sekci Manager ve formátu na jednu řádku název=hodnota. Ukázkový soubor  /etc/systemd/system.conf:

[Manager]
DefaultTimeoutStartSec=10s
DefaultTimeoutStopSec=10s
DefaultEnvironment=machine=desktop

Níže je popis několika nejdůležitějších parametrů, ostatní jsou opět v manuálové stránce.

DefaultTimeoutStartSec, DefaultTimeoutStopSec
Nastavení maximální doby, po kterou se může jednotka aktivovat/deaktivovat. Poté bude příslušná činnost ukončena. Toto nastavení je možné změnit pro konkrétní službu volbou TimeoutStartSec, resp. TimeoutStopSec. Výchozí hodnota je 90s.
DefaultRestartSec
Prodleva mezi deaktivací a následnou aktivací při restartu jednotky. Výchozí 100ms.
DefaultEnvironment
Nastavení proměnných, které budou mít všechny jednotky. Hodnotou je seznam oddělený mezerami ve tvaru jmeno=promenna. Tedy např.  DefaultEnvironment="PROMENNA1=hodnota s mezerou" PR2=hodnota2
RuntimeWatchdogSec
Při použití této volby se při startu hardwarový watchdog (pokud je k dispozici na daném stroji) nastaví na stanovený interval. Systemd pak alespoň jednou za polovinu této doby watchdog kontaktuje. Pokud během intervalu ke kontaktu nedojde, watchdog restartuje počítače.
LogLevel
Nastavení úrovně logování. Hodnota může být buď číslo nebo jedna z hodnot: emerg, alert, crit, err, warning, notice, info, debug. Logovány budou všechny události, které mají alespoň takovou prioritu, jako je hodnota tohoto nastavení. Výchozí je info.

Doplňující konfigurace typů služba, socket, mount, swap

Pro tyto typy existuje ještě další konfigurace týkající se spouštění jednotek (uvedená v man systemd.exec). První je parametr WorkingDirectory. Hodnotou je absolutní cesta, popř. vlnka (~), která zastupuje domovský adresář uživatele, s jehož právy jednotka běží. S tím souvisí User a Group . Jejichž hodnotou je buď jméno, nebo ID. Pokud není určena skupina, použije se výchozí daného uživatele.

Volbou StandardInput můžeme nastavit, kam bude připojen file deskriptor 0 spuštěného procesu. Možné hodnoty jsou null, v tomto případě bude přesměrován do /dev/null. Pokud je služba spouštěna socketem a je nastaven právě jeden socket, můžeme nastavit StandardInput=socket a na stdin bude přesměrován tento socket. Příklad služby move2tmp.service z minula bychom tedy mohli napsat následovně:

move2tmp.service

[Service]
ExecStart=/bin/sh -c "cat >> /tmp/ab"
StandardInput=socket

move2tmp.socket

ListenFIFO=/tmp/socket

Pokud nastavíme parametr TTYPath, kde hodnotu je terminál. Můžeme standardní vstup nastavit na tty, tty-force, tty-fail, které v různých obměnách nastaví terminál z TTYPath jako stdin.

Co se týče StandardOutput a StandardError mimo výše zmíněných jsou možné hodnoty inherit, který jen přesměruje stdin na stdout. Hodnotami journal, syslog, kmsg můžeme nastavit výstup do logů journalctl, syslog, kmsg. Analogicky funguje i parametr StandardError.

Dalším zajímavým nastavením je parametr PrivateTmp. Když je nastavený na true, jednotka dostane připojený vlastní /tmp a /var/tmp, což se může hodit například při riziku kolize dočasných souborů. Pomocí parametrů ReadOnlyDirectories a InaccessibleDirectories můžeme specifikovat, které složky bude mít jednotka pouze pro čtení a které jí budou nedostupné. Nastavením ReadOnlyDirectories=/home/knezi tak zabráníme změně dat uživatele knezi.

Také je možné omezovat systémové zdroje jednotek. Např. parametrem MemoryLimit=2G nastavíme, že jednotka může alokovat maximálně 2 GB paměti RAM. Podobně CPUQuota=20% říká, že daná jednotka bude mít k dispozici maximálně dvacet procent procesorového času. Další typy omezení jsou v man systemd.resource-control  a jsou společné pro typy slice, scope, služba, socket, mount a swap.

Tím jsme probrali celou konfiguraci systemd. Příště si představíme některé nástroje (jako např. journal), které jsou součástí systemd.

Zdroj: https://www.root.cz/clanky/nebojte-se-systemd-zbyvajici-konfigurace/

CookiesAccept

Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie a poodné technologie.

Používáním tohoto webu s tím souhlasíte. Více informací o nakládání s obobními údaji: ZDE

Souhlasím!
Jaké shromažďujeme osobní údaje a proč je shromažďujeme

Komentáře

Když návštěvníci přidají komentář na tento web, jsou shromažďovány údaje zobrazené ve formuláři pro komentář, dále IP adresa návštěvníka a řetězec user agent definující prohlížeč, což pomáhá k detekci spamu.

Službě Gravatar může být poskytnut anonymní řetězec vytvořený z vaší emailové adresy (nazývaný také hash), díky kterému lze určit jestli tuto službu používáte. Zásady ochrany osobních údajů služby Gravatar jsou k dispozici zde: https://automattic.com/privacy/. Po schválení vašeho komentáře je váš profilový obrázek viditelný pro veřejnost v kontextu vašeho komentáře.

Média

Pokud nahráváte obrázky na tento web, měli byste se vyhnout nahrávání obrázků s vloženými údaji o poloze (EXIF GPS). Návštěvníci webu mohou stáhnout a zobrazit libovolné data o poloze z obrázků na webu.

Cookies

Pokud na naše stránky přidáte komentář, můžete povolit uložení jména, emailové adresy a webové stránky do cookies. Tímto způsobem se snažíme zvýšit váš komfort, když budete psát nový komentář už pak nebudete muset tyto údaje znovu vyplňovat. Tyto soubory cookies budou mít životnost jeden rok.

Pokud máte účet a přihlašujete se k tomuto webu, nastavíme dočasné cookie pro ověření, zda váš prohlížeč přijímá soubory cookies. Tento soubor cookie neobsahuje žádné osobní data a při zavření prohlížeče se zruší.

Při přihlašování vám nastavíme také několik souborů cookies pro uložení vašich přihlašovacích údajů a pro nastavení zobrazení obrazovky. Přihlašovací soubory cookies mají životnost dva dny a cookies pro nastavení zobrazení mají životnost jeden rok. Pokud potvrdíte možnost „Zapamatovat si mě“, vaše přihlášení bude trvat dva týdny. Pokud se ze svého účtu odhlásíte, přihlašovací cookies budou odstraněny.

Pokud upravujete nebo publikujete článek, bude ve vašem prohlížeči uložen další cookie. Tento cookie neobsahuje žádné osobní data a jednoduše označuje ID příspěvku, který jste právě upravili. Jeho platnost vyprší po 1 dni.

Vložený obsah z dalších webů

Příspěvky na těchto stránkách mohou obsahovat vložený obsah (například videa, obrázky, články atd.). Vložený obsah z jiných webových stránek se chová stejným způsobem, jako kdyby návštěvník navštívil jiný web.

Tyto webové stránky mohou shromažďovat data o vás, používat soubory cookies, vkládat další sledování od třetích stran a sledovat vaši interakci s tímto vloženým obsahem, včetně sledování interakce s vloženým obsahem, pokud máte účet a jste přihlášeni na danou webovou stránku.

Jak dlouho uchováváme vaše údaje

Pokud přidáte komentář, komentář a jeho metadata budou uchovávána po dobu neurčitou. Údaje jsou uchovávány za účelem automatického rozpoznání a schválení všech následných komentářů, místo jejich držení ve frontě moderování.

Pro uživatele, kteří se registrují na tomto webu (pokud mají tuto možnost), ukládáme také osobní údaje, které uvádějí ve svém uživatelském profilu. Všichni uživatelé mohou kdykoliv vidět, upravovat nebo smazat své osobní údaje (s výjimkou toho, že nemohou změnit své uživatelské jméno). Administrátoři webu mohou také tyto informace zobrazit a upravovat.

Jaké máte práva?

Pokud máte na tomto webu účet nebo jste zde přidali komentáře, můžete požádat o obdržení souboru s exportem osobních údajů, které o vás uchováváme, včetně všech údajů, které jste nám poskytli. Můžete také požádat o odstranění veškerých osobních údajů, které o vás uchováváme. Tato možnost nezahrnuje údaje, které jsme povinni uchovávat z administrativních, právních nebo bezpečnostních důvodů.

Kam posíláme vaše data?

Komentáře návštěvníků mohou být kontrolovány prostřednictvím automatizované služby detekce spamu, která může být umístěna v zahraničí.

Podobné

Created and designed by lunux.net
With help of Pixelsparadise.com