Storitvena datoteka Systemd

Storitvena Datoteka Systemd



V sistemu Linux izhod statusa systemctl kaže, da je storitev naložena prek datoteke, ki se imenuje storitvena datoteka. Do teh datotek lahko dostopate v /lib/systemd/system oz /etc/systemd/system imeniki.

Servisne datoteke imajo .storitev razširitve in vsebujejo navodila, ki jih zahteva systemd za upravljanje storitve.







The systemd init sistem upravlja inicializacijo sistema z uporabo Enota . Enota je predmet, ki izvaja nalogo ali dejanje, kot je upravljanje storitve, ki vključuje nadzor in spremljanje le-te. Te enote so v bistvu datoteke, imenovane storitvene datoteke, ki vključujejo odvisnosti enot in ukaze. Te datoteke so ključnega pomena za učinkovito nadzorovanje procesov v ozadju in upravljanje virov.



V vodniku bom raziskal storitveno datoteko systemd, njeno strukturo in glavne direktive, ki nadzorujejo storitev.



Pri delu s systemd so pogoji sistemska storitvena datoteka in datoteka sistemske enote se pogosto uporabljajo izmenično, ker se tehnično nanašajo na isto stvar.





Kaj je Systemd Service File

V Linuxu systemd upravlja storitve z uporabo storitvenih datotek, ki vsebujejo konfiguracijska navodila, tako da jih lahko systemd razume in izvaja.

Za seznam enot uporabite systemctl z – seznam-enot ukaz.



systemctl --seznam-enot

Če želite prebrati servisno datoteko katere koli storitve, uporabite mačka ukaz s potjo datoteke.

mačka [ / pot do storitvene datoteke ]

Če želite na primer videti servisno datoteko ssh.service uporabite dani ukaz.

mačka / lib / systemd / sistem / ssh.service

Anatomija storitvene datoteke Systemd

Na splošno datoteke storitvenih enot systemd vsebujejo tri razdelke.

  • Enota
  • Storitev
  • Namestite

Datoteka enote, specifične za storitev, bo imela poseben razdelek, imenovan Storitev razdelek.

Upoštevajte, da je storitev samo vrsta enote. Enota ima lahko različne vrste, kot so vtičnica, naprava, mount, automount, swap, target, timer, slice in scope. Ti razdelki so nameščeni med razdelkoma Enota in Namestitev. Pripona datoteke bo prav tako nadomeščena z ustrezno vrsto enote, na primer, vrsta enote vtičnice bo imela a .vtičnica razširitev datoteke.

Opomba: V tem priročniku se bom osredotočil na vrsto storitvene enote, ker jo skrbniki in razvijalci pogosto uporabljajo.

Ti razdelki so v oglatih oklepajih ([]). Vsak razdelek vsebuje ustrezen niz navodil. Splošna struktura storitvene datoteke je podana spodaj.

[ Enota ]

Direktiva1 =Navodilo 1

Direktiva2 =Navodilo 2

[ Storitev ]

Direktiva1 =Navodilo 1

Direktiva2 =Navodilo 2

[ Namestite ]

Direktiva1 =Navodilo 1

Direktiva2 =Navodilo 2

Vrstni red odsekov je mogoče spremeniti; vendar se na splošno upošteva zgoraj omenjeni vrstni red.

Oddelek [Enota].

Razdelek enota vsebuje opis enote in odvisnosti enote. Ta razdelek je po dogovoru postavljen na vrh storitvene datoteke. Spodaj so navedene pogosto uporabljene direktive:

Direktiva Opis
Opis Ta direktiva se uporablja za omembo imena storitve. Dolžina opisa ne sme presegati 80 znakov.
Dokumentacija Ta direktiva vsebuje man stran ali URL storitve.
Zahteva Ta direktiva se uporablja za omembo odvisnosti od trenutne storitve. Če aktivacija te storitve odvisnosti ni izvedena, se trenutna storitev ne bo začela.
želi Ta direktiva se uporablja za omembo odvisnosti od trenutne storitve. Vendar te storitve odvisnosti ni treba aktivirati za izvajanje trenutne storitve.
prej Ko je trenutna enota aktivirana, se bo zagnala storitev, omenjena v tej direktivi.
Po Preden je trenutna enota aktivirana, se bo zagnala storitev, omenjena v tej direktivi.
BindsTo Ta direktiva povezuje trenutno storitev z omenjeno storitvijo. Če se povezana storitev znova zažene, se bodo znova zagnale tudi trenutne storitve.

Poleg teh direktiv obstajata še dve direktivi; Pogoj in Trdi. Številne storitve zahtevajo posebne sistemske pogoje za uspešno delovanje in te direktive se uporabljajo za omembo pogojev.

Razdelek [Namestitev].

Ta razdelek ni obvezen in je potreben le, če storitev zahteva aktivacijo ali deaktivacijo ob zagonu. Poleg tega je treba omeniti tudi storitev vzdevkov. Pogosto uporabljene direktive za razdelek za namestitev so navedene spodaj:

Direktiva Opis
WantedBy Ta direktiva določa raven izvajanja * cilj storitve. Če je cilj nastavljen na večuporabniški.target potem bo storitev omogočena na tej ravni izvajanja.
RequiredBy Ta direktiva je podobna WantedBy, vendar bo storitev omogočena tudi brez odvisnosti, omenjene v direktivi.
vzdevek Ta direktiva se uporablja za omogočanje storitve z drugim imenom. Simbolna povezava se ustvari s tem imenom, ko je storitev omogočena.

Večinoma, večuporabniški.target se uporablja kot WantedBy parameter. Toda kaj je multi-user.target?

Multi-user.target predstavlja stanje sistema, pripravljenega za sprejem negrafičnih večuporabniških sej. To je stanje pred zagonom GUI.

Obstajajo različne ravni delovanja sistema, poglejmo več o funkciji teh ravni delovanja.

V sistemu systemd so storitve združene glede na ravni izvajanja, ki se imenujejo tarče . Vsaka raven izvajanja ima datoteko z .tarča razširitev v /etc/systemd/system imenik. Storitev se bo izvajala glede na stanje ravni izvajanja.

Raven teka Tarče Država Datoteke
0 ugasniti Zaustavite in izklopite poweroff.target
1 reševanje Zažene reševalno lupino reševanje.tarča
2,3,4 večuporabniški Zažene večuporabniško lupino brez GUI večuporabniški.target
5 grafično Vzpostavi lupino GUI za več uporabnikov grafični.target
6 ponovni zagon Zaustavite in znova zaženite ponovni zagon.target

Oddelek [Storitev].

Ta razdelek vsebuje konfiguracijske nastavitve za storitev. Primarna konfiguracija tega razdelka je definiranje vrste in ukazov, ki naj se izvedejo na začetku storitve. Vrsta in ExecStart so glavne direktive, ki se uporabljajo za nastavitev storitve.

Različne vrste storitev so navedene v naslednji tabeli.

Vrsta storitve Opis
preprosto To je privzeti tip, ko tip ali Busname ni omenjen in je omenjen samo ExecStart. Systemd najprej izvede glavni proces in nato nadaljnje enote.
vilice Ta vrsta se uporablja za ohranjanje delovanja storitve, tudi če je nadrejena storitev zaprta. Razcepi podrejeni proces po zaprtju nadrejenega procesa.
en poskus Systemd najprej izvede glavni proces in ko glavni proces zapusti, se zaženejo nadaljnje enote.
dbus Storitev z dbus se uporablja za komunikacijo z drugim procesom na vodilu. Če je omenjeno ime vodila, se bo postopek aktiviral po pridobitvi imena vodila.
obvestiti Storitev bo obvestila ob začetku postopka. Systemd bo po izdanem obvestilu nadaljeval do enot za spremljanje.
nedejaven Storitev drži, dokler niso odposlana vsa aktivna opravila; uporabno predvsem za izboljšanje izhoda konzole.

Pogosto uporabljene direktive v razdelku storitev so navedene spodaj:

Direktiva Opis
ExecStart Ohranja celotno pot ukaza, ki ga je treba izvesti za začetek postopka.
ExecStartPre Hrani ukaze, ki jih je treba izvesti pred začetkom glavnega procesa.
ExecStartPost Hrani ukaze, ki jih je treba izvesti po začetku glavnega procesa.
ExecReload Ohranja ukaz za ponovno nalaganje konfiguracije storitve.
Ponovni zagon Za samodejni ponovni zagon storitve v okoliščinah, kot so napaka, uspeh, nenormalno, prekinitev in pes čuvaj.
RestartSec Za ohranitev števila sekund, po katerih se bo storitev samodejno znova zagnala.

The ExecStart je ena od ključnih direktiv, uporabljenih v razdelku storitev. Vsebuje celotna pot do izvedljive datoteke da se bo storitev izvršila ob priklicu.

Zaključek

Storitvena datoteka systemd je konfiguracijska datoteka, ki je strukturirana z direktivami in ukazi, tako da jih lahko upravlja systemd. Te datoteke vsebujejo navodila, ki kažejo, kako sistem upravlja storitev. V tem priročniku sem obravnaval, kako dostopati do storitvene datoteke systemd, njenih razdelkov in direktiv, ki upravljajo storitve. Če želite izvedeti več o navodilih za storitveno datoteko, preberite najdeni uradni vodnik za dokumentacijo tukaj .