Teenusfailides on .teenus laiendusi ja sisaldavad juhiseid, mida nõuab süsteemne teenuse haldamiseks.
The süsteemne init süsteem haldab süsteemi initsialiseerimist kasutades Üksus . Üksus on objekt, mis täidab ülesannet või toimingut, näiteks haldab teenust, mis hõlmab selle juhtimist ja jälgimist. Need üksused on sisuliselt failid, mida nimetatakse teenindusfailideks ja mis sisaldavad üksuste sõltuvusi ja käske. Need failid on taustaprotsesside tõhusaks juhtimiseks ja ressursside haldamiseks üliolulised.
Juhendis uurin süsteemi teenusefaili, selle struktuuri ja peamisi teenust juhtivaid direktiive.
Systemd-iga töötamisel tingimused systemd teenusefail ja systemd üksuse fail kasutatakse sageli vaheldumisi, kuna tehniliselt viitavad need samale asjale.
Mis on Systemd Service File
Linuxis haldab systemd teenuseid, kasutades teenusefaile, mis sisaldavad konfiguratsioonijuhiseid, et süsteem saaks aru ja saaks käivitada.
Ühikute loetlemiseks kasutage süsteemictl koos -loend-ühikud käsk.
systemctl --loend-ühikud
Mis tahes teenuse teenusefaili lugemiseks kasutage kass käsk faili teega.
kass [ / service-faili tee ]Näiteks teenusefaili vaatamiseks ssh.service kasutage antud käsku.
kass / lib / süsteemne / süsteem / ssh.service
Systemd Service faili anatoomia
Üldiselt sisaldavad systemd teenindusüksuse failid kolme jaotist.
- Üksus
- Teenindus
- Installige
Teenusepõhisel üksusefailil on spetsiaalne jaotis nimega Teenindus osa.
Pange tähele, et teenus on vaid teatud tüüpi üksus. Seadmel võib olla erinevat tüüpi, näiteks pistikupesa, seade, kinnitus, automaatne ühendamine, vahetus, sihtmärk, taimer, osa ja ulatus. Need sektsioonid asetatakse jaotiste Üksus ja Install vahel. Samuti asendatakse faililaiend vastava seadmetüübiga, näiteks pistikupesa üksuse tüübil on a .pistikupesa faililaiendit.
Märge: Selles juhendis keskendun teenindusüksuse tüübile, kuna administraatorid ja arendajad kasutavad seda laialdaselt.
Need jaotised on ümbritsetud nurksulgudega ([]). Iga jaotis sisaldab asjakohast juhiste komplekti. Allpool on toodud teenindusfaili üldine struktuur.
[ Üksus ]Direktiiv1 =Juhend 1
Direktiiv2 =Juhend 2
[ Teenindus ]
Direktiiv1 =Juhend 1
Direktiiv2 =Juhend 2
[ Installige ]
Direktiiv1 =Juhend 1
Direktiiv2 =Juhend 2
Sektsioonide järjekorda saab muuta; üldiselt järgitakse aga ülaltoodud järjekorda.
[Ühik] jaotis
Üksuse jaotis sisaldab ühiku kirjeldust ja ühikute sõltuvusi. See jaotis on kokkuleppeliselt paigutatud teenusefaili ülaossa. Tavaliselt kasutatavad direktiivid on loetletud allpool:
direktiiv | Kirjeldus |
Kirjeldus | Seda käsku kasutatakse teenuse nime mainimiseks. Kirjelduse pikkus ei tohi ületada 80 tähemärki. |
Dokumentatsioon | See käsk sisaldab teenuse man-lehte või URL-i. |
Vajab | Seda direktiivi kasutatakse praegusest teenusest sõltuvuse mainimiseks. Kui seda sõltuvusteenust ei aktiveerita, siis praegust teenust ei käivitata. |
Tahab | Seda direktiivi kasutatakse sõltuvuse mainimiseks praegusest teenusest. Praeguse teenuse käitamiseks ei pea seda sõltuvusteenust aga aktiveerima. |
Enne | Pärast praeguse seadme aktiveerimist käivitatakse selles direktiivis nimetatud teenus. |
Pärast | Enne praeguse üksuse aktiveerimist käivitatakse selles direktiivis nimetatud teenus. |
BindsTo | See direktiiv seob praeguse teenuse nimetatud teenusega. Kui lingitud teenus taaskäivitub, taaskäivituvad ka praegused teenused. |
Peale nende direktiivide on veel kaks direktiivi; Seisund ja Kinnitage. Paljud teenused nõuavad edukaks käitamiseks konkreetseid süsteemitingimusi ja neid direktiive kasutatakse tingimuste mainimiseks.
[Installi] jaotis
See jaotis ei ole kohustuslik ja on vajalik ainult siis, kui teenus nõuab käivitamisel aktiveerimist või deaktiveerimist. Lisaks tuleb mainida ka varjunimeteenust. Allpool on loetletud jaotise Installi jaoks tavaliselt kasutatavad direktiivid.
direktiiv | Kirjeldus |
WantedBy | See direktiiv määrab käitamistaseme * teenuse sihtmärk. Kui sihtmärk on seatud multi-user.target siis lubatakse teenus sellel käitamistasemel. |
NõutavBy | See direktiiv sarnaneb WantedByga, kuid isegi ilma direktiivis mainitud sõltuvuseta on teenus lubatud. |
Teise nimega | Seda käsku kasutatakse teenuse lubamiseks teise nimega. Selle nimega sümlink luuakse, kui teenus on lubatud. |
Enamasti, multi-user.target kasutatakse kui WantedBy parameeter. Aga mis on multi-user.target?
Multi-user.target tähistab süsteemi olekut, mis on valmis aktsepteerima mittegraafilisi mitme kasutaja seansse. See on olek enne GUI käivitamist.
Süsteemil on erinevaid käitamistasemeid, tutvume nende töötasemete funktsioonidega.
Systemd-is on teenused rühmitatud käitamistasemete alusel, mida nimetatakse sihtmärgid . Igal käitamistasemel on fail .sihtmärk laiendus /etc/systemd/system kataloog. Teenus töötab käitamistaseme oleku alusel.
Run Level | Sihtmärgid | osariik | Failid |
0 | väljalülitamine | Lülitage välja ja lülitage välja | väljalülitus.sihtmärk |
1 | päästa | Käivitab päästekesta | pääste.sihtmärk |
2,3,4 | mitme kasutajaga | Käivitab mitme kasutaja mitte-GUI kesta | multi-user.target |
5 | graafiline | Loob mitme kasutaja GUI kesta | graafiline.sihtmärk |
6 | taaskäivitage | Lülitage välja ja taaskäivitage | reboot.target |
[Teenus] jaotis
See jaotis sisaldab teenuse konfiguratsiooniseadeid. Selle jaotise esmane konfiguratsioon on teenuse alguses käivitatavate liikide ja käskude määratlemine. Tüüp ja ExecStart on peamised direktiivid, mida teenuse seadistamiseks kasutatakse.
Järgmises tabelis on loetletud erinevad teenusetüübid.
Teenuse tüüp | Kirjeldus |
lihtne | See on vaiketüüp, kui tüüpi või siininime ei mainita ja mainitakse ainult ExecStart. Systemd käivitab esmalt põhiprotsessi ja seejärel järelüksused. |
hargnemine | Seda tüüpi kasutatakse teenuse töös hoidmiseks isegi siis, kui emateenus on suletud. See loob alamprotsessi pärast vanemprotsessi sulgemist. |
üks lask | Systemd käivitab esmalt põhiprotsessi ja kui põhiprotsess väljub, käivituvad järeltoimingud. |
dbus | Dbusiga teenust kasutatakse siini teise protsessiga suhtlemiseks. Kui siini nimi on mainitud, aktiveeritakse protsess pärast siini nime hankimist. |
teatama | Teenus teavitab protsessi käivitamisest. Süsteem liigub pärast teatise väljastamist järelkontrolliüksustesse. |
tühikäigul | See hoiab teenust seni, kuni kõik aktiivsed tööd on lähetatud; eelkõige kasulik konsooli väljundi parandamiseks. |
Tavaliselt kasutatavad direktiivid jaotises Teenus on toodud allpool:
direktiiv | Kirjeldus |
ExecStart | See säilitab protsessi alustamiseks käivitatava käsu täieliku tee. |
ExecStartPre | See säilitab käsud, mis tuleks täita enne põhiprotsessi algust. |
ExecStartPost | See säilitab käsud, mis tuleks käivitada pärast põhiprotsessi algust. |
ExecReload | See säilitab käsu teenuse konfiguratsiooni uuesti laadimiseks. |
Taaskäivita | Teenuse automaatseks taaskäivitamiseks sellistes olukordades nagu ebaõnnestumine, õnnestumine, ebanormaalsus, katkestamine ja valvekoer. |
RestartSec | Et hoida sekundite arvu, mille möödudes teenus automaatselt taaskäivitub. |
The ExecStart on üks olulisemaid juhiseid, mida kasutatakse jaotises Teenus. See sisaldab käivitatava faili täielik tee et teenus käivitamisel käivitatakse.
Järeldus
Systemd teenusefail on konfiguratsioonifail, mis on struktureeritud direktiivide ja käskudega, et neid saaks systemd hallata. Need failid sisaldavad juhiseid, mis näitavad, kuidas systemd teenust haldab. Selles juhendis käsitlesin, kuidas pääseda juurde süsteemiteenuse failile, selle jaotistele ja teenuseid haldavatele direktiividele. Hooldusfaili juhiste kohta lisateabe saamiseks lugege leitud ametlikku dokumentatsiooni juhendit siin .