Súbory služieb majú .servis rozšírenia a obsahujú pokyny, ktoré vyžaduje systemd spravovať službu.
The systemd init systém riadi inicializáciu systému pomocou Jednotka . Jednotka je objekt, ktorý vykonáva úlohu alebo akciu, ako je napríklad správa služby, ktorá zahŕňa jej kontrolu a monitorovanie. Tieto jednotky sú v podstate súbory nazývané servisné súbory, ktoré zahŕňajú závislosti jednotiek a príkazy. Tieto súbory sú kľúčové pre efektívne riadenie procesov na pozadí a riadenie zdrojov.
V príručke preskúmam súbor služby systemd, jeho štruktúru a hlavné smernice, ktoré riadia službu.
Pri práci so systemd sú podmienky servisný súbor systemd a súbor systemd unit sa často používajú zameniteľne, pretože technicky odkazujú na to isté.
Čo je súbor služieb Systemd
V Linuxe systemd spravuje služby pomocou servisných súborov, ktoré obsahujú konfiguračné inštrukcie, aby im systemd porozumel a mohol ich spustiť.
Na zoznam jednotiek použite systemctl s – zoznam jednotiek príkaz.
systemctl --list-units
Na čítanie servisného súboru akejkoľvek služby použite kat príkaz s cestou k súboru.
kat [ / cesta k súboru služby ]Napríklad, ak chcete zobraziť súbor služby ssh.service použite daný príkaz.
kat / lib / systemd / systém / ssh.service
Anatómia servisného súboru Systemd
Súbory servisných jednotiek systemd vo všeobecnosti obsahujú tri sekcie.
- Jednotka
- servis
- Inštalácia
Súbor jednotky špecifický pre službu bude mať špecifickú časť s názvom servis oddiele.
Upozorňujeme, že služba je len typ jednotky. Jednotka môže mať rôzne typy, ako je zásuvka, zariadenie, držiak, automatická montáž, výmena, cieľ, časovač, rez a rozsah. Tieto sekcie sú umiestnené medzi sekciou Unit a Install. Prípona súboru bude tiež nahradená príslušným typom jednotky, napríklad typ jednotky zásuvky bude mať a .zásuvka rozšírenie súboru.
Poznámka: V tejto príručke sa zameriam na typ servisnej jednotky z dôvodu jej širokého využitia administrátormi a vývojármi.
Tieto časti sú uvedené v hranatých zátvorkách ([]). Každá časť obsahuje príslušný súbor pokynov. Všeobecná štruktúra súboru služieb je uvedená nižšie.
[ Jednotka ]Smernica1 = Návod 1
Smernica2 = Návod 2
[ servis ]
Smernica1 = Návod 1
Smernica2 = Návod 2
[ Inštalácia ]
Smernica1 = Návod 1
Smernica2 = Návod 2
Poradie sekcií je možné zmeniť; všeobecne sa však dodržiava vyššie uvedené poradie.
[Jednotka] Sekcia
Časť Unit obsahuje popis jednotiek a závislostí jednotiek. Táto sekcia je podľa konvencie umiestnená v hornej časti súboru služby. Bežne používané smernice sú uvedené nižšie:
smernice | Popis |
Popis | Táto smernica sa používa na uvedenie názvu služby. Dĺžka popisu nesmie presiahnuť 80 znakov. |
Dokumentácia | Táto direktíva obsahuje manuálovú stránku alebo URL služby. |
Vyžaduje | Táto smernica sa používa na zmienku o závislosti od aktuálnej služby. Ak sa aktivácia tejto závislej služby nevykoná, aktuálna služba sa nespustí. |
chce | Táto smernica sa používa na zmienku o závislosti od aktuálnej služby. Túto závislú službu však nie je potrebné aktivovať na spustenie aktuálnej služby. |
Predtým | Po aktivácii aktuálnej jednotky sa spustí služba uvedená v tejto smernici. |
Po | Pred aktiváciou aktuálnej jednotky sa spustí služba uvedená v tejto smernici. |
BindsTo | Táto smernica spája aktuálnu službu s uvedenou službou. Ak sa prepojená služba reštartuje, reštartujú sa aj aktuálne služby. |
Okrem týchto smerníc existujú ďalšie dve smernice; Podmienka a Tvrdiť. Mnohé služby vyžadujú špecifické systémové podmienky na úspešné spustenie a tieto direktívy sa používajú na spomenutie podmienok.
Sekcia [Inštalovať]
Táto časť nie je povinná a je potrebná len vtedy, keď služba vyžaduje aktiváciu alebo deaktiváciu pri zavádzaní systému. Okrem toho je potrebné spomenúť aj službu alias. Bežne používané smernice pre sekciu Inštalácia sú uvedené nižšie:
smernice | Popis |
WantedBy | Táto smernica nastavuje úroveň spustenia * cieľ služby. Ak je cieľ nastavený na viacužívateľský.cieľ potom bude služba povolená na tejto úrovni spustenia. |
Je požadované | Táto smernica sa podobá na WantedBy, avšak aj bez závislosti uvedenej v smernici bude služba povolená. |
Alias | Táto direktíva sa používa na povolenie služby s iným názvom. Keď je služba povolená, vytvorí sa symbolický odkaz s týmto názvom. |
Väčšinou, viacužívateľský.cieľ sa používa ako WantedBy parameter. Ale čo je multi-user.target?
Multi-user.target predstavuje stav systému pripravený prijať negrafické relácie viacerých používateľov. Je to stav pred spustením GUI.
Existujú rôzne úrovne spustenia systému, poďme sa dozvedieť o funkcii týchto úrovní spustenia.
V systemd sú služby zoskupené na základe úrovní spustenia, ktoré sa nazývajú ciele . Každá úroveň spustenia má súbor s .cieľ rozšírenie v /etc/systemd/system adresár. Služba sa spustí na základe stavu úrovne spustenia.
Úroveň behu | Ciele | Štát | Súbory |
0 | vypnúť | Vypnite a vypnite | vypnutie.cieľ |
1 | záchrana | Spustí záchranný shell | záchrana.cieľ |
2,3,4 | viacužívateľský | Spustí shell pre viacerých používateľov bez GUI | viacužívateľský.cieľ |
5 | grafické | Vytvára viacužívateľský GUI shell | grafický.cieľ |
6 | reštartovať | Vypnúť a reštartovať | reboot.target |
Sekcia [Služba]
Táto časť obsahuje konfiguračné nastavenia pre službu. Primárna konfigurácia tejto časti definuje typ a príkazy, ktoré sa majú vykonať pri spustení služby. Typ a ExecStart sú hlavné smernice používané na nastavenie služby.
Rôzne typy služieb sú uvedené v nasledujúcej tabuľke.
Typ služby | Popis |
jednoduché | Je to predvolený typ, keď sa neuvádza typ alebo názov zbernice a uvádza sa iba ExecStart. Systemd najskôr vykoná hlavný proces a potom nadväzujúce jednotky. |
rozdvojenie | Tento typ sa používa na udržanie prevádzky služby, aj keď je nadradená služba zatvorená. Po zatvorení nadradeného procesu rozdelí podriadený proces. |
jeden výstrel | Systemd najskôr vykoná hlavný proces a keď hlavný proces opustí, spustia sa následné jednotky. |
dbus | Služba s dbus sa používa na komunikáciu s iným procesom na zbernici. Ak je uvedený názov zbernice, proces sa aktivuje po získaní názvu zbernice. |
oznámiť | Služba vás upozorní pri spustení procesu. Systém po vydaní oznámenia prejde na následné jednotky. |
nečinný | Drží službu, kým nie sú odoslané všetky aktívne úlohy; primárne užitočné na zlepšenie výstupu konzoly. |
Bežne používané smernice v sekcii Služba sú uvedené nižšie:
smernice | Popis |
ExecStart | Zachováva úplnú cestu príkazu, ktorý sa má vykonať, aby sa začal proces. |
ExecStartPre | Uchováva príkazy, ktoré by sa mali vykonať pred začatím hlavného procesu. |
ExecStartPost | Uchováva príkazy, ktoré by sa mali vykonať po spustení hlavného procesu. |
ExecReload | Uchová príkaz na opätovné načítanie konfigurácie služby. |
Reštart | Na automatické reštartovanie služby za okolností, ako sú pri zlyhaní, pri úspechu, pri abnormálnom stave, pri prerušení a pri strážení. |
RestartSec | Ak chcete zachovať počet sekúnd, po ktorých sa služba automaticky reštartuje. |
The ExecStart je jednou z kľúčových smerníc používaných v sekcii Služba. Obsahuje úplná cesta k spustiteľnému súboru že služba sa spustí pri vyvolaní.
Záver
Servisný súbor systemd je konfiguračný súbor, ktorý je štruktúrovaný pomocou direktív a príkazov, takže ich môže spravovať systemd. Tieto súbory obsahujú inštrukcie označujúce, ako je služba riadená systémom systemd. V tejto príručke som sa zaoberal tým, ako získať prístup k súboru služieb systemd, jeho sekciám a smerniciam, ktoré spravujú služby. Ak sa chcete dozvedieť viac o pokynoch pre servisný súbor, prečítajte si nájdenú oficiálnu dokumentáciu tu .