Jak jsme si již řekli, cíle (target) jsou typem jednotky, které nahrazují běhové úrovně. Cíl je jakási virtuální služba, která má definované závislosti, ale při spuštění neobsluhuje žádný program.

Při startu počítače se „spustí“ cíl, což znamená, že se spustí všechny jeho závislosti. Poté, co jsou spuštěné, je cíl považován za dosažený.

 

K dosažení daného cíle slouží příkaz isolate. Toto je jeden z mála příkazů, který doplňuje příponu .target místo .service, protože konfigurační soubory cíle se vytvářejí s touto příponou.

Při spuštění systemctl isolate graphical.target se vypnou všechny jednotky, které graphical.target (sloužící pro spuštění grafického prostředí) nemá nastaveny jako závislosti. Poté se spustí všechny závislosti (ve výchozím nastavení mají všechny jednotky zároveň nastavený parametr After, tedy musí být všechny považované za spuštěné, než je dosažen daný cíl). Pozor na to, že zastaveny budou opravdu všechny nepotřebné jednotky, tedy může být zastaven i shell, ze kterého je příkaz isolate spuštěn.

Konfigurační soubory

Cíle nemají žádné speciální konfigurační volby. Jejich odlišení je hlavně z důvodu přehlednosti. Je teoreticky možné vytvořit službu, která se bude chovat stejně jako cíl. Proto neexistuje speciální sekce Target. V sekci Unit je důležitý parametr AllowIsolate, který musí být nastaven na true, aby bylo možné dosáhnout daného cíle příkazem isolate. Kromě toho je možné nastavit cestu k dokumentaci, konfliktní jednotky a závislosti stejně, jako tomu je u služeb. Jen pozor na to, že při selhání libovolné závislosti nastavené parametrem Require, příkaz isolate selže a daný cíl nebude dosažen.

V sekci install nedává smysl použít parametr WantedBy pro instalaci. Tato sekce se používá především pro vytvoření aliasů. V systemd je např. cíl ctr-alt-del.target, který se spustí v případě stisknutí této klávesové zkratky. Standardně má cíl poweroff.target nastaven v sekci Install parametr Alias=ctrl-alt-del.target a tedy při stisku klávesové zkratky Control+Alt+Delete dojde k vypnutí počítače.

Speciální cíle

Systemd má několik speciálních jednotek (jejich seznam viz man systemd.special). Speciální jednotky mají definováno, co přesně dělají. Tyto definice se vztahují ke jménům, proto nemohou být přejmenovány. Některé jsou virtuální – nemají žádný konfigurační soubor, ale přesto je s nimi možné pracovat jako se standardními jednotkami (včetně nastavování takových jednotek jako závislosti, jejich pouštění…). I virtuální jednotky je samozřejmě také možné přepsat vlastní konfigurací, či ji jen pozměnit vytvořením složky jmeno.d, jak jsme si ukázali ve třetím dílu.

Všechny cíle, které si představíme, jsou považovány za speciální, protože mají pevně definovaný neměnný název. Příkladem je jednotka ctrl-alt-del.target. Pomocí konfiguračních souborů by bylo velmi obtížné zajistit, aby se tato jednotka spustila právě při stisku Ctrl+Alt+Delete, proto má systemd v sobě zadrátovanou obsluhu této události jako dosažení speciálního cíle. Důležité cíle jsou představeny níže, další jsou v  man systemd.special:

poweroff.target
Cíl sloužící pro vypnutí počítače, aliasem tohoto cíle je runlevel0.target.
reboot.target
Restartování počítače – alias runlevel6.target
runlevel2–5.target
Tyto cíle existují z důvodu zpětné kompatibility se SysV. Jsou spouštěny pouze z důvodu zpětné kompatibility pro starší software. Je doporučeno, aby byly vytvořeny jako aliasy pro ostatní cíle (2–4 multi-user a 5 graphical). Rozhodně ale nemusí existovat (např. na autorově Arch Linuxu).
suspend.target, hibernate.target
Jsou cíle, jak název napovídá, pro uspání počítače do operační paměti a na disk.
basic.target
Tento cíl má na starosti základní nastartování počítače. Zajistí připojení lokálních disků, swapu, /tmp. Dále spustí časovače (timers – náhrada cronu, viz následující díly) a nějaké další akce nutné ke spuštění počítače.
default.target
Tento cíl je dosažen po nastartování počítače. Typicky tedy bývá nastaven na graphical.target nebo multi-user.target. Příkazem systemctl get-default je možné zjistit, kam tento cíl míří. Přikaz systemctl set-default cil pak výchozí cíl změní. Dočasně je možné výchozí cíl změnit při spuštění linuxového jádra s parametrem systemd.unit.
emergency.target
Z názvu je patrné, k čemu slouží. Je vytvořena jako speciální, aby pro dosažení tohoto cíle byla potřebná jen základní funkcionalita systému. Standardně pouze nastartuje systémový manažer (proces s PID 1) a shell. Zde se může hodit nastartovat počítač přímo do emergency módu pomocí parametru kernelu systemd.unit=emergency.target (popř. jen systemd.unit=emergency).
rescue.target
Podobné jako emergency.target, s tím rozdílem, že spustí základní systém včetně připojení disků. Alias této jednotky je runlelevel1.target
local-fs.target
Tento cíl má jako závislosti nastaveny všechny připojované disky. Je tedy možné jej nastavit jako závislost, pokud potřebujeme pracovat se všemi disky.

Pro uspání počítače můžeme zavolat příkaz systemctl isolate suspend. Systemd kromě toho ještě nabízí speciální příkazy pro některé cíle. Např. systemctl suspend aktivuje cíl suspend. Pro vypnutí a restart slouží příkazy systemctl poweroff a systemctl reboot, ty kromě samotné aktivace cíle ještě vypíší do shellu informaci o vypínání/restartu počítače a zajistí, aby tento cíl nemohl být konfliktní se žádným jiným a opravdu tak došlo k požadované operaci. Stejně tak fungují příkazy default, emergency, rescue, hibernate.

Inhibitory

Při spouštění některých operací může být nežádoucí dosáhnout nějakého cíle (kupříkladu při vypalování CD nechceme vypnout počítač). K ošetření tohoto slouží tzv. inhibitory. Spuštěný program může vytvořit zámek, který bude blokovat aktivaci definovaných cílů. Zámky jsou dvojího typu – delay, který odloží aktivaci (to se může využít např. k vyprázdnění cache, aby uspání počítače netrvalo tak dlouho). Druhým je block, který když je nastaven, aktivace daného cíle okamžitě selže s chybou. Systemd kromě samotného API nabízí i program systemd-inhibit. Typ zámku nastavíme přepínačem --mode={block,delay}, informace o tom, který program a proč blokuje, přepínači --who --why, které operace chceme blokovat pomocí --what (nejdůležitějšími jsou shutdown a sleep) a nakonec napíšeme svůj příkaz. Vypnutí při aktualizaci můžeme blokovat příkazem:

systemd-inhibit --what=shutdown --mode=block --who="pacman" --what="Update of system" pacman -Syu

Pokud bychom chtěli inhibitory z nějakého důvodu ignorovat, přidáme do příkazu pro aktivaci cíle přepínač -i (např.  systemctl suspend -i).

Tím jsme vyčerpali dnešní téma. Příště si představíme zbylé typy jednotek.

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

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