File Service Systemd

File Service Systemd



Pe Linux, ieșirea de stare systemctl arată că serviciul este încărcat printr-un fișier numit fișier de serviciu. Aceste fișiere pot fi accesate în /lib/systemd/system sau /etc/systemd/system directoare.

Fișierele de serviciu au .serviciu extensii și conțin instrucțiunile cerute de systemd pentru a gestiona un serviciu.







The systemd init system gestionează inițializarea sistemului folosind Unitate . O unitate este un obiect care îndeplinește o sarcină sau o acțiune, cum ar fi gestionarea unui serviciu, care implică controlul și monitorizarea acestuia. Aceste unități sunt în esență fișiere numite fișiere de serviciu care includ dependențe și comenzi de unități. Aceste fișiere sunt cruciale pentru controlul eficient al proceselor de fundal și gestionarea resurselor.



În ghid, voi explora fișierul de serviciu systemd, structura acestuia și principalele directive care controlează serviciul.



Când lucrați cu systemd, termenii fișier de serviciu systemd și fișier unitar systemd sunt adesea folosite interschimbabil deoarece din punct de vedere tehnic se referă la același lucru.





Ce este Systemd Service File

Pe Linux, systemd gestionează serviciile folosind fișierele de serviciu care conțin instrucțiunile de configurare, astfel încât systemd să poată înțelege și executa.

Pentru a lista unitățile, utilizați systemctl cu – lista-unități comanda.



systemctl --lista-unități

Pentru a citi fișierul de serviciu al oricărui serviciu, utilizați pisică comanda cu calea fișierului.

pisică [ / cale-fișier-serviciu ]

De exemplu, pentru a vedea fișierul de serviciu al ssh.service utilizați comanda dată.

pisică / lib / systemd / sistem / ssh.service

Anatomia fișierului de serviciu Systemd

În general, fișierele de unitate de serviciu systemd conțin trei secțiuni.

  • Unitate
  • Serviciu
  • Instalare

Un fișier de unitate specific serviciului va avea o secțiune specifică numită Serviciu secțiune.

Rețineți că serviciul este doar un tip de unitate. O unitate poate avea diferite tipuri, cum ar fi soclu, dispozitiv, montură, montare automată, schimb, țintă, temporizator, felie și domeniu. Aceste secțiuni sunt plasate între secțiunile Unitate și Instalare. Extensia de fișier va fi înlocuită și cu tipul de unitate respectiv, de exemplu, un tip de unitate de priză va avea a .priză extensia de fișier.

Notă: În acest ghid, mă voi concentra asupra tipului de unitate de serviciu din cauza utilizării sale pe scară largă de către administratori și dezvoltatori.

Aceste secțiuni sunt cuprinse între paranteze drepte ([]). Fiecare secțiune conține un set de instrucțiuni relevant. O structură generală a unui fișier de serviciu este prezentată mai jos.

[ Unitate ]

Directiva 1 =Instrucțiuni 1

Directiva 2 =Instrucțiuni 2

[ Serviciu ]

Directiva 1 =Instrucțiuni 1

Directiva 2 =Instrucțiuni 2

[ Instalare ]

Directiva 1 =Instrucțiuni 1

Directiva 2 =Instrucțiuni 2

Ordinea secțiunilor poate fi modificată; cu toate acestea, ordinea menționată mai sus este respectată în general.

Secțiunea [Unitate].

Secțiunea unitate conține descrierea unității și a dependențelor unității. Această secțiune, prin convenție, este plasată în partea de sus a fișierului de serviciu. Directivele utilizate în mod obișnuit sunt enumerate mai jos:

Directivă Descriere
Descriere Această directivă este folosită pentru a menționa numele serviciului. Lungimea descrierii nu trebuie să depășească 80 de caractere.
Documentație Această directivă conține pagina de manual sau adresa URL a serviciului.
Necesită Această directivă este folosită pentru a menționa dependența de serviciul actual. Dacă activarea acestui serviciu de dependență nu este efectuată, serviciul curent nu va fi inițiat.
Vrea Această directivă este folosită pentru a menționa dependența de serviciul actual. Cu toate acestea, acest serviciu de dependență nu este necesar să fie activat pentru a rula serviciul curent.
Inainte de După ce unitatea curentă a fost activată, serviciul menționat în această directivă va fi pornit.
După Înainte ca unitatea curentă să fie activată, serviciul menționat în această directivă va fi pornit.
BindsTo Această directivă leagă serviciul actual de serviciul menționat. Dacă serviciul conectat repornește, serviciile curente vor reporni și ele.

În afară de aceste directive, mai există două directive; Condiție și Afirma. Multe servicii necesită condiții specifice de sistem pentru a rula cu succes, iar aceste directive sunt folosite pentru a menționa condițiile.

Secțiunea [Instalare].

Această secțiune nu este obligatorie și este necesară doar atunci când un serviciu necesită activarea sau dezactivarea la pornire. Mai mult, este de menționat și serviciul de alias. Directivele utilizate în mod obișnuit pentru secțiunea Instalare sunt enumerate mai jos:

Directivă Descriere
WantedBy Această directivă stabilește nivelul de rulare * ținta serviciului. Dacă o țintă este setată la multi-utilizator.tinta atunci serviciul va fi activat la acest nivel de rulare.
Cerut de Această directivă seamănă cu WantedBy, cu toate acestea, chiar și fără dependența menționată în directivă, serviciul va fi activat.
Alias Această directivă este folosită pentru a activa serviciul cu alt nume. Un link simbolic este creat cu acest nume atunci când serviciul este activat.

În mare parte, multi-utilizator.tinta este folosit ca WantedBy parametru. Dar ce este multi-user.target?

Multi-user.target reprezintă starea sistemului gata să accepte sesiuni non-grafice cu mai mulți utilizatori. Este statul înainte de lansarea GUI.

Există diferite niveluri de rulare ale sistemului, să învățăm despre funcția acestor niveluri de rulare.

În systemd, serviciile sunt grupate pe baza nivelurilor de rulare, care sunt apelate tinte . Fiecare nivel de rulare are un fișier cu .ţintă extensie în /etc/systemd/system director. Un serviciu va rula pe baza stării nivelului de rulare.

Run Level Ținte Stat Fișiere
0 oprire Opriți și opriți poweroff.tinta
1 salvare Pornește carcasa de salvare salvare.ţinta
2,3,4 multi utilizator Pornește shell-ul non-GUI multi-utilizator multi-utilizator.tinta
5 grafic Stabilește shell GUI multi-utilizator grafică.ţintă
6 reporniți Opriți și reporniți repornire.ţintă

Secțiunea [Servicii].

Această secțiune cuprinde setările de configurare pentru serviciu. Configurația principală a acestei secțiuni este definirea tipului și comenzilor care trebuie executate la începutul serviciului. Tip și ExecStart sunt principalele directive folosite pentru înființarea unui serviciu.

Diferite tipuri de servicii sunt enumerate în tabelul următor.

Tip serviciu Descriere
simplu Este tipul implicit atunci când tipul sau Busname nu este menționat și este menționat doar ExecStart. Systemd execută mai întâi procesul principal și apoi unitățile ulterioare.
bifurcare Acest tip este folosit pentru a menține serviciul în funcțiune chiar dacă serviciul părinte este închis. Închide un proces copil după închiderea procesului părinte.
o singura sansa Systemd execută mai întâi procesul principal și când procesul principal iese, vor porni unitățile de urmărire.
dbus Serviciul cu dbus este folosit pentru a comunica cu un alt proces de pe magistrală. Dacă numele magistralei este menționat, atunci procesul va fi activat după achiziționarea numelui magistralei.
notifica Serviciul va anunța când începe procesul. Systemd va trece la unitățile de urmărire după emiterea notificării.
inactiv Deține serviciul până când toate joburile active sunt expediate; util în primul rând pentru a îmbunătăți ieșirea consolei.

Directivele utilizate în mod obișnuit în secțiunea Service sunt menționate mai jos:

Directivă Descriere
ExecStart Păstrează calea completă a comenzii care urmează să fie executată pentru a începe procesul.
ExecStartPre Păstrează comenzile care ar trebui să fie executate înainte de începerea procesului principal.
ExecStartPost Păstrează comenzile care ar trebui să fie executate după începerea procesului principal.
ExecReload Păstrează comanda pentru a reîncărca configurația serviciului.
Repornire Pentru a reporni automat serviciul în circumstanțe cum ar fi la eșec, la succes, la anormal, la abandon și la supraveghere.
RestartSec Pentru a păstra numărul de secunde după care serviciul va reporni automat.

The ExecStart este una dintre directivele cruciale utilizate în secțiunea Service. Acesta conține calea completă a executabilului pe care serviciul se va executa la invocare.

Concluzie

Un fișier de serviciu systemd este un fișier de configurare care este structurat cu directive și comenzi astfel încât acestea să poată fi gestionate de systemd. Aceste fișiere conțin instrucțiuni care indică modul în care un serviciu este gestionat de systemd. În acest ghid, am abordat cum să accesez un fișier de serviciu systemd, secțiunile acestuia și directivele care gestionează serviciile. Pentru a afla mai multe despre instrucțiunile fișierului de service, vă rugăm să citiți ghidul de documentație oficial găsit Aici .