26.
Systém
1. Úvod
Tato kapitola se zabývá vybranými aspekty běhu operačního systému a jeho ovládání, zejména ovládáním démonů, systémovými logy, restartem či vypnutím počítače. Také se zabývá rozložením klávesnice.
Když zavaděč GRUB spustí jádro systému, to pak vytvoří dva první procesy: systemd (PID 1) a kthreadd (PID 2). Systemd pak na základě tzv. výchozího cíle a dalších nastavení spustí další démony a také správce příhlášení, kteří umožní uživatelům přihlašovat se do systému (popř. automaticky přihlásí výchozího uživatele). Když se uživatel přihlásí, vznikne takzvané „sezení“, které zanikne, až se uživatel odhlásí (včetně případů, kdy je odhlášení součástí restartu či vypnutí počítače).
GNU GRUB je vyvíjen v rámci projektu GNU.
2. Definice
- Král démonů („systemd“ s PID 1, v Ubuntu se z důvodu kompatibility v některých výpisech ukazuje jako „init“) je ústřední démon systému, který řídí jeho start, restart či vypnutí a spouští a zastavuje další systémové démony. V některých linuxových komunitách má špatnou pověst, protože jeho předchůdce Upstart kdysi nevybíravě převzal „vládu“ od tehdy oblíbeného procesu „init“ (zvaného také „sysvinit“) a systemd pak pod svoji kontrolu sjednotil mnoho do té doby nezávisle řešených funkcí systému. Jako uživatele vás však od něj nečeká žádné nebezpečí, pokud mu nebudete překážet.
- Démon je proces bez vlastního uživatelského rozhraní (obvykle se s ním komunikuje zvláštními příkazy nebo po sběrnici D-BUS). Existují tři druhy démonů: Systémoví démoni jsou „systemd“ s PID 1 a jeho přímí potomci, kromě těch, kteří mají uživatelské rozhraní (jako např. lightdm). Jaderní démoni jsou „kthreadd“ (PID 2) a jeho zrozenci. Jaderní démoni se zodpovídají pouze jádru, jsou mimo kontrolu uživatele i krále démonů. Uživatelští démoni jsou pak procesy spuštěné obyčejným uživatelem na pozadí a bez uživatelského rozhraní; patří k nim zejména uživatelská instance „systemd“ (ta s PID jiným než 1) a její potomci.
- Systémová jednotka (unit) je datová struktura krále démonů. Systemd rozeznává jedenáct druhů systémových jednotek, z nichž nejznámější a nejdůležitější jsou služby („service“), reprezentující démony. Další významné jsou sokety („socket“, souvisí se službami a umožňují démonům nabízet svoje služby ostatním démonům), cíle („target“, seskupení jednotek pro určité situace) a časovače („timer“, pravidelně probouzejí a ruší démony).
- Sezení je instance přihlášení uživatele k systému ve víceuživatelském režimu; vzniká přihlášením uživatele a zaniká jeho odhlášením, resp. ukončením všech procesů daného sezení. Sezení může být grafické či textové a může být místní nebo vzdálené.
3. Zaklínadla
3/1 Informace o systému (zjistit)
3/2 Restart a vypnutí počítače
3/3 Ovládání systémových jednotek
3/4 Informace o systémových jednotkách
3/5 Logy
3/6 Sezení
3/7 Ostatní
3/8 Analýza času stráveného zaváděním systému
4. Zaklínada: Klávesnice
4/1 Ovládání počítače klávesnicí
4/2 Ovládání klávesnice počítačem
Poznámka: příkazy v této sekci jsou určeny výhradně pro X; téméř jistě nebudou fungovat v textových virtuálních konzolích ani na Waylandu.
4/3 Rozložení klávesnice
5. Parametry příkazů
5/1 journalctl
○ --output=short-iso ○ --output=json-pretty ◉ --output=short | Různé formáty výstupu (podporovány i další). |
☐ -f | Bude čekat na nové položky a vypisovat je, jakmile se v logu objeví. |
☐ -n počet-záznamů | Omezí počet nejnovějších záznamů k vypsání (jinak vypíše všechny). |
☐ -p priorita | Vypíše pouze záznamy s alespoň uvedenou prioritou (debug, info, notice, warning, err, crit, alert, emerg). Lze zadat i přesný rozsah operátorem .., např. „-p notice..crit“. |
☐ --since "YYYY-mm-dd HH:mm:ss" | Vypíše pouze záznamy z uvedeného času a pozdější. |
☐ -r | Seřadí log od nejnovějších záznamů místo od nejstarších. |
-u jednotka | Omezí výpis na záznamy související s uvedenou jednotkou; lze uvést víckrát, v takovém případě se zahrnou záznamy související s kteroukoliv z uvedených jednotek. Místo přesného názvu lze uvést i vzorek. |
☐ -a | Vypíše přesně a úplně i zprávy obsahující netisknutelné znaky či zprávy mimořádně dlouhé (nezkoušeno). |
6. Instalace na Ubuntu
Většina použitých příkazů je základní součástí Ubuntu, pouze příkazy numlockx, xdotool, inxi, neofetch a memtester si musíte doinstalovat, chcete-li je použít:
7. Tipy a zkušenosti
- Volba „enable“/„disable“ je nezávislá na tom, zda démon právě běží. Nastavení na „enable“ ho okamžitě nespustí a nastavení na „disable“ neukončí (ledaže uvedete parametr „--now“).
8. Další zdroje informací
- Článek na Wikipedii
- Seriál článků na ABC Linuxu
- Video: The Magic SysRQ Key on the Keyboard (anglicky)
- Systemd cheat sheet (anglicky)
- Oficiální stránka systemd pro uživatele (anglicky)
- Oficiální stránka systemd pro vývojáře (anglicky)
- Repozitář systemd na GitHubu (anglicky)
- Video Creating systemd Service Files (anglicky)
- Video systemd Basics (anglicky)
- man 1 systemctl (anglicky)
- man 5 systemd.service (anglicky)
- Balíček systemd (anglicky)
- TL;DR systemctl (anglicky)
9. Zákulisí kapitoly
V této verzi kapitoly chybí:
- zjišťování informací o hardware
- nastavení automatického přihlašování do X (GDM/SDDM/Lightdm)
- synchronizace času (zapnout/vypnout/ručné provést)
- ukázka
- lspci
- lsusb
- vytváření vlastních služeb a démonů
Tato kapitola záměrně nepokrývá:
- zavádění operačního systému, diskové oddíly