Soubory služeb mají .servis rozšíření a obsahují pokyny, které jsou vyžadovány systemd spravovat službu.
The systemd init system spravuje inicializaci systému pomocí Jednotka . Jednotka je objekt, který provádí úlohu nebo akci, jako je správa služby, která zahrnuje její řízení a monitorování. Tyto jednotky jsou v podstatě soubory nazývané servisní soubory, které zahrnují závislosti jednotek a příkazy. Tyto soubory jsou klíčové pro efektivní řízení procesů na pozadí a správu zdrojů.
V průvodci prozkoumám soubor služby systemd, jeho strukturu a hlavní směrnice, které službu řídí.
Při práci se systemd jsou podmínky soubor služby systemd a soubor systemd unit se často používají zaměnitelně, protože technicky odkazují na stejnou věc.
Co je Systemd Service File
V Linuxu systemd spravuje služby pomocí souborů služeb, které obsahují konfigurační instrukce, takže systemd může rozumět a spustit.
Pro výpis jednotek použijte systemctl s –seznam jednotek příkaz.
systemctl --list-units
Chcete-li číst soubor služeb jakékoli služby, použijte kočka příkaz s cestou k souboru.
kočka [ / cesta-souboru služby ]Chcete-li například zobrazit soubor služby ssh.service použijte daný příkaz.
kočka / lib / systemd / Systém / ssh.service
Anatomie souboru služeb Systemd
Soubory servisních jednotek systemd obecně obsahují tři sekce.
- Jednotka
- Servis
- Nainstalujte
Soubor jednotky specifický pro službu bude mít specifickou sekci nazvanou Servis sekce.
Upozorňujeme, že služba je pouze typ jednotky. Jednotka může mít různé typy, jako je zásuvka, zařízení, držák, automount, swap, cíl, časovač, řez a rozsah. Tyto sekce jsou umístěny mezi sekcemi Jednotka a Instalace. Přípona souboru bude také nahrazena příslušným typem jednotky, například typ jednotky zásuvky bude mít a .zásuvka přípona souboru.
Poznámka: V této příručce se zaměřím na typ servisní jednotky, protože je široce používán administrátory a vývojáři.
Tyto části jsou uzavřeny v hranatých závorkách ([]). Každá sekce obsahuje příslušnou sadu instrukcí. Obecná struktura souboru služeb je uvedena níže.
[ Jednotka ]Směrnice1 = Návod 1
Směrnice2 = Návod 2
[ Servis ]
Směrnice1 = Návod 1
Směrnice2 = Návod 2
[ Nainstalujte ]
Směrnice1 = Návod 1
Směrnice2 = Návod 2
Pořadí sekcí lze změnit; výše uvedené pořadí se však obecně dodržuje.
[Jednotka] Sekce
Sekce jednotek obsahuje popis jednotek a jejich závislostí. Tato sekce je podle konvence umístěna v horní části souboru služby. Běžně používané směrnice jsou uvedeny níže:
Směrnice | Popis |
Popis | Tato směrnice se používá k uvedení názvu služby. Délka popisu nesmí přesáhnout 80 znaků. |
Dokumentace | Tato direktiva obsahuje manuálovou stránku nebo URL služby. |
Vyžaduje | Tato směrnice se používá ke zmínce o závislosti na aktuální službě. Pokud nebude provedena aktivace této závislé služby, aktuální služba nebude spuštěna. |
chce | Tato směrnice se používá ke zmínce o závislosti na aktuální službě. Ke spuštění aktuální služby však není vyžadována aktivace této závislé služby. |
Před | Po aktivaci aktuální jednotky se spustí služba uvedená v této směrnici. |
Po | Před aktivací aktuální jednotky bude spuštěna služba uvedená v této směrnici. |
BindsTo | Tato směrnice propojuje aktuální službu se zmíněnou službou. Pokud se propojená služba restartuje, restartují se také aktuální služby. |
Kromě těchto směrnic existují ještě dvě směrnice; Stav a Tvrdit. Mnoho služeb vyžaduje specifické systémové podmínky pro úspěšné spuštění a tyto direktivy se používají ke zmínce o podmínkách.
Sekce [Instalovat]
Tato část není povinná a je nezbytná pouze v případě, že služba vyžaduje aktivaci nebo deaktivaci při spouštění. Navíc je třeba zmínit i službu alias. Běžně používané direktivy pro sekci Install jsou uvedeny níže:
Směrnice | Popis |
WantedBy | Tato směrnice nastavuje úroveň běhu * cíl služby. Pokud je cíl nastaven na víceuživatelský.cíl pak bude služba povolena na této úrovni běhu. |
Vyžadováno | Tato direktiva se podobá WantedBy, ale i bez závislosti uvedené v direktivě bude služba povolena. |
Přezdívka | Tato direktiva se používá k povolení služby s jiným názvem. Když je služba povolena, vytvoří se symbolický odkaz s tímto názvem. |
Většinou, víceuživatelský.cíl se používá jako WantedBy parametr. Ale co je multi-user.target?
Multi-user.target představuje stav systému připravený přijímat negrafické víceuživatelské relace. Je to stav před spuštěním GUI.
Existují různé úrovně běhu systému, pojďme se dozvědět o funkci těchto úrovní běhu.
V systemd jsou služby seskupeny na základě úrovní běhu, které se nazývají cíle . Každá úroveň běhu má soubor s .cílová rozšíření v /etc/systemd/system adresář. Služba bude spuštěna na základě stavu úrovně spuštění.
Úroveň běhu | Cíle | Stát | Soubory |
0 | vypnout | Vypnout a vypnout | vypnutí.cíl |
1 | zachránit | Spustí záchranný shell | záchrana.cíl |
2,3,4 | Multi uživatel | Spustí víceuživatelský shell bez GUI | víceuživatelský.cíl |
5 | grafický | Zakládá víceuživatelský GUI shell | grafický.cíl |
6 | restartovat | Vypněte a restartujte | restart.cíl |
Sekce [Servis]
Tato část obsahuje nastavení konfigurace služby. Primární konfigurace této sekce definuje typ a příkazy, které mají být provedeny při spuštění služby. Typ a ExecStart jsou hlavní směrnice používané k nastavení služby.
Různé typy služeb jsou uvedeny v následující tabulce.
Typ služby | Popis |
jednoduchý | Je to výchozí typ, když není uveden typ nebo název sběrnice a je uveden pouze ExecStart. Systemd nejprve provede hlavní proces a poté následují jednotky. |
rozvětvení | Tento typ se používá k udržení služby spuštěné, i když je nadřazená služba uzavřena. Po uzavření nadřazeného procesu rozdělí podřízený proces. |
jeden výstřel | Systemd nejprve provede hlavní proces a když hlavní proces opustí, spustí se následné jednotky. |
dbus | Služba s dbus se používá ke komunikaci s jiným procesem na sběrnici. Pokud je uveden název sběrnice, bude proces aktivován po získání názvu sběrnice. |
oznámit | Služba vás upozorní při zahájení procesu. Po vydání oznámení systemd přejde k navazujícím jednotkám. |
líný | Udržuje službu, dokud nejsou odeslány všechny aktivní úlohy; primárně užitečné pro zlepšení výstupu konzole. |
Běžně používané direktivy v sekci Service jsou uvedeny níže:
Směrnice | Popis |
ExecStart | Zachovává úplnou cestu příkazu, který má být proveden, aby byl proces zahájen. |
ExecStartPre | Uchovává příkazy, které by měly být provedeny před zahájením hlavního procesu. |
ExecStartPost | Uchovává příkazy, které by měly být provedeny po zahájení hlavního procesu. |
ExecReload | Uchovává příkaz pro opětovné načtení konfigurace služby. |
Restartujte | Automaticky restartovat službu za okolností, jako je při selhání, při úspěchu, při abnormálním stavu, při přerušení a při sledování. |
RestartSec | Chcete-li zachovat počet sekund, po kterých se služba automaticky restartuje. |
The ExecStart je jednou z klíčových direktiv používaných v sekci Service. Obsahuje úplná cesta ke spustitelnému souboru že se služba spustí při vyvolání.
Závěr
Servisní soubor systemd je konfigurační soubor, který je strukturován pomocí direktiv a příkazů, takže je lze spravovat pomocí systemd. Tyto soubory obsahují pokyny udávající, jak je služba spravována systémem systemd. V této příručce jsem se zabýval tím, jak získat přístup k souboru služby systemd, jeho sekcím a direktivám, které spravují služby. Chcete-li se dozvědět více o pokynech pro servisní soubor, přečtěte si nalezenou oficiální dokumentaci tady .