Systemd: Otec všech ostatních procesů
Linux a jakýkoli jiný * nixový systém vždy spustí proces, který je otcem všech ostatních procesů. Pokud používáte Systemd, tento proces je systemd, proces se vždy nazývá 'init' bez ohledu na systém init. Jakmile je systemd spuštěn, spustí se démoni, kteří provozují subsystémy. Démoni řídí, jaké zdroje máte a jaké systémy jsou otevřené. Výzva k přihlášení je služba spravovaná společností systemd. Systemd spouští mnoho dalších služeb a také připojuje všechny vaše disky, včetně snap mountů.
Jak ovládáte, co začíná?
Nejdříve ze všeho nejdříve systém init měl úrovně běhu, které mnoho čtenářů pozná. Runlevel 1 byl režim pro jednoho uživatele, 2 režim pro více uživatelů bez připojení k síti a 3-5 pro více uživatelů a grafický. Nastavení úrovně běhu na 0 znamenalo zastavení a 6 znamenalo restart. Vývojáři systemd zjistili, že tyto úrovně jsou nejasné, a proto je změnili na cíle. Cíle nejsou úplně stejné, ale mají podobnou funkci. Když běží konkrétní cíl, běží konkrétní kolekce jednotek. Více o jednotkách později.
Nastavení „runlevel“, tzv. Cíle.
Cíl můžete změnit za běhu, například můžete použít terminál k nastavení cíle na více uživatelů. To by zastavilo vaše grafické uživatelské rozhraní, X nebo Wayland, ale umožnilo vám a ostatním přihlásit se pomocí textové konzoly. Použijte následující příkaz.
$ systemctl izolovat více uživatelů.cílováNebo pokud chcete spustit plochu, použijte následující příkaz.
$ systemctl izolovat graficky.cílováTo, co vás opravdu zajímá, je, jak spustit správnou úroveň, tímto způsobem můžete zjistit, co právě máte.
$ systemctl get-defaultChcete-li změnit výchozí nastavení, nastavte jej.
$ systemctl set-default grafické.cílováTento příkaz ve skutečnosti způsobí spuštění mnoha jednotek a služeb při spuštění počítače. Možná budete chtít spustit nebo zastavit jednu službu.
SPUŠTĚNÍ, zastavení, povolení a zakázání služby.
Zde máte šanci změnit to, co se děje při bootování a během normálního provozu. Na rozdíl od cílů jsou jednotky speciální pro konkrétní službu. Chcete-li zastavit službu, použijte 'systemctl stop', stejně můžete použít 'start' a 'restart'. Chcete-li službu spustit při spuštění, použijte „povolit“, abyste ji zastavili „deaktivovat“. Vyberte službu a spusťte a zastavte ji, když je spuštěna.
$ systemctl stavové poháry.servisTento příkaz zobrazuje stav služby, zobrazuje také seznam akcí provedených systémem týkajících se služby. Službu zastavíte pomocí níže uvedeného příkazu.
$ systemctl stop kelímky.servisSlužba je nyní pro aktuální relaci zastavena. Chcete-li jej změnit tak, aby se nespustil při příštím spuštění, použijte deaktivaci.
$ systemctl deaktivovat poháry.servisVšimněte si, že byste mohli službu pouze deaktivovat, nemělo by to žádný vliv na vaši aktuální situaci. Služba stále běží. Při příštím spuštění však službu nespustí.
Systemd také ovládá držáky, zařízení, zásuvky a další. Jednotky jsou nižší a srozumitelnější, pokud jste se již dříve zabývali Linuxem. Můžete je také nastavit sami, ale největší vliv na bootování má ovládání služeb.
Jak přidáváte vlastní skripty?
Své skripty můžete přidávat docela snadno. Zajímavé jsou podrobnosti o tom, jak můžete svůj skript nebo službu záviset na ostatních. To je úhledně předvedeno v tomto souboru služby obnovení WiFi.
[Jednotka]Popis = Restartujte networkmanager při obnovení
After = pozastavit.cílová
After = hibernace.cílová
After = hybridní spánek.cílová
[Servis]
Typ = onehot
ExecStart = / bin / systemctl restartuje správce sítě.servis
[Nainstalujte]
WantedBy = pozastavit.cílová
WantedBy = hibernace.cílová
WantedBy = hybridní spánek.cílová
Tento kód vytvoří službu, která se stane jednou (onehot) po třech cílech uvedených v kódu. Kód, který se provede, je v tomto případě jediný příkaz. Stejně tak můžete ukázat ExecStart na skript podle vašeho výběru.
Závěr
Změnu systému, zejména jeho spuštění, můžete provést sami, ale mějte na paměti, že to má pro každou službu mnoho důsledků, takže se ujistěte, že je váš kód stabilní a rychle proveditelný.