Fitxer de servei Systemd

Fitxer De Servei Systemd



A Linux, la sortida d'estat systemctl mostra que el servei es carrega mitjançant un fitxer que s'anomena fitxer de servei. Es pot accedir a aquests fitxers a la pàgina /lib/systemd/system o /etc/systemd/system directoris.

Els fitxers de servei tenen .servei extensions i conté les instruccions requerides per systemd per gestionar un servei.







El systemd init system gestiona la inicialització del sistema mitjançant el Unitat . Una unitat és un objecte que realitza una tasca o acció, com la gestió d'un servei, que implica controlar-lo i supervisar-lo. Aquestes unitats són essencialment fitxers anomenats fitxers de servei que inclouen dependències i ordres d'unitats. Aquests fitxers són crucials per controlar de manera eficient els processos en segon pla i gestionar els recursos.



A la guia, exploraré el fitxer de servei systemd, la seva estructura i les directrius principals que controlen el servei.



Quan es treballa amb systemd, els termes fitxer de servei systemd i fitxer d'unitat systemd sovint s'utilitzen indistintament perquè tècnicament es refereixen a la mateixa cosa.





Què és Systemd Service File

A Linux, el systemd gestiona els serveis mitjançant els fitxers de servei que contenen les instruccions de configuració perquè el systemd pugui entendre i executar-los.

Per llistar les unitats, utilitzeu systemctl amb el -unitats de llista comandament.



systemctl --llista-unitats

Per llegir el fitxer de servei de qualsevol servei, utilitzeu gat comanda amb la ruta del fitxer.

gat [ / ruta-fitxer-servei ]

Per exemple, per veure el fitxer de servei de ssh.servei utilitzeu la comanda donada.

gat / lib / systemd / sistema / ssh.servei

Anatomia del fitxer de servei de Systemd

En general, els fitxers d'unitats de servei systemd contenen tres seccions.

  • Unitat
  • Servei
  • Instal·lar

Un fitxer d'unitat específic del servei tindrà una secció específica anomenada Servei secció.

Tingueu en compte que el servei és només un tipus d'unitat. Una unitat pot tenir diferents tipus, com ara sòcol, dispositiu, muntatge, muntatge automàtic, intercanvi, objectiu, temporitzador, porció i abast. Aquestes seccions es col·loquen entre les seccions Unitat i Instal·lació. L'extensió de fitxer també es substituirà pel tipus d'unitat respectiu, per exemple, un tipus d'unitat de sòcol tindrà a .endoll extensió de fitxer.

Nota: En aquesta guia, em centraré en el tipus d'unitat de servei a causa del seu ampli ús per part d'administradors i desenvolupadors.

Aquestes seccions es troben entre claudàtors ([]). Cada secció conté un conjunt d'instruccions rellevants. A continuació es mostra una estructura general d'un fitxer de servei.

[ Unitat ]

Directiva 1 = Instrucció 1

Directiva 2 = Instrucció 2

[ Servei ]

Directiva 1 = Instrucció 1

Directiva 2 = Instrucció 2

[ Instal·lar ]

Directiva 1 = Instrucció 1

Directiva 2 = Instrucció 2

L'ordre de les seccions es pot canviar; no obstant això, generalment se segueix l'ordre esmentat.

Secció [Unitat].

La secció unitat conté la descripció de la unitat i les dependències de la unitat. Aquesta secció, per convenció, es col·loca a la part superior del fitxer de servei. Les directives d'ús habitual s'enumeren a continuació:

Directiva Descripció
Descripció Aquesta directiva s'utilitza per esmentar el nom del servei. La longitud de la descripció no ha de superar els 80 caràcters.
Documentació Aquesta directiva conté la pàgina man o l'URL del servei.
Requereix Aquesta directiva s'utilitza per esmentar la dependència del servei actual. Si no es realitza l'activació d'aquest servei de dependència, no s'iniciarà el servei actual.
Vol Aquesta directiva s'utilitza per esmentar la dependència del servei actual. Tanmateix, no cal que aquest servei de dependència estigui activat per executar el servei actual.
Abans Un cop activada la unitat actual, s'iniciarà el servei esmentat en aquesta directiva.
Després Abans que s'hagi activat la unitat actual, s'iniciarà el servei esmentat en aquesta directiva.
Enllaça a Aquesta directiva vincula el servei actual amb el servei esmentat. Si el servei enllaçat es reinicia, els serveis actuals també es reiniciaran.

A part d'aquestes directives, hi ha dues directives més; Condició i Afirmar. Molts serveis requereixen condicions específiques del sistema per funcionar correctament, i aquestes directives s'utilitzen per esmentar les condicions.

Secció [Instal·lar].

Aquesta secció no és obligatòria i només és necessària quan un servei requereix activació o desactivació a l'arrencada. A més, també cal esmentar el servei d'àlies. Les directives que s'utilitzen habitualment per a la secció d'instal·lació s'enumeren a continuació:

Directiva Descripció
WantedBy Aquesta directiva estableix el nivell d'execució * objectiu del servei. Si s'estableix un objectiu multi-user.target aleshores el servei s'habilitarà en aquest nivell d'execució.
RequeritPer Aquesta directiva s'assembla a WantedBy, però, fins i tot sense la dependència esmentada a la directiva, el servei s'habilitarà.
Àlies Aquesta directiva s'utilitza per habilitar el servei amb un altre nom. Es crea un enllaç simbòlic amb aquest nom quan el servei està habilitat.

Majoritàriament, el multi-user.target s'utilitza com a WantedBy paràmetre. Però, què és multi-user.target?

El multi-usuari.target representa l'estat del sistema preparat per acceptar sessions multiusuari no gràfiques. És l'estat abans de llançar la GUI.

Hi ha diferents nivells d'execució del sistema, anem a conèixer la funció d'aquests nivells d'execució.

A systemd, els serveis s'agrupen en funció dels nivells d'execució, que s'anomenen objectius . Cada nivell d'execució té un fitxer amb .objectiu extensió a la /etc/systemd/system directori. Un servei s'executarà en funció de l'estat del nivell d'execució.

Nivell d'execució Objectius Estat Fitxers
0 apagar Apagueu i apagueu poweroff.target
1 rescat Comença la carcassa de rescat rescue.target
2,3,4 multiusuari Inicia l'intèrpret d'ordres multiusuari no GUI multi-user.target
5 gràfic Estableix un intèrpret d'ordres GUI multiusuari graphical.target
6 reiniciar Apagueu i reinicieu reboot.target

Secció [Servei].

Aquesta secció inclou els paràmetres de configuració del servei. La configuració principal d'aquesta secció és definir el tipus i les ordres que s'executaran a l'inici del servei. Tipus i ExecStart són les principals directrius que s'utilitzen per configurar un servei.

A la taula següent es mostren els diferents tipus de servei.

Tipus de servei Descripció
senzill És el tipus predeterminat quan no s'esmenta el tipus o Busname i només s'esmenta ExecStart. El systemd executa primer el procés principal i després les unitats de seguiment.
bifurcació Aquest tipus s'utilitza per mantenir el servei en funcionament encara que el servei principal estigui tancat. Bifurca un procés fill després del tancament del procés principal.
un tret El systemd executa primer el procés principal i quan el procés principal surti, s'iniciaran les unitats de seguiment.
dbus El servei amb dbus s'utilitza per comunicar-se amb un altre procés del bus. Si s'esmenta el nom de l'autobús, el procés s'activarà un cop adquirit el nom de l'autobús.
notificar El servei informarà quan s'iniciï el procés. El systemd procedirà a les unitats de seguiment després de l'emissió de la notificació.
ociós Manté el servei fins que s'enviïn tots els treballs actius; útil principalment per millorar la sortida de la consola.

Les directives que s'utilitzen habitualment a la secció Servei s'esmenten a continuació:

Directiva Descripció
ExecStart Manté el camí complet de l'ordre que cal executar per començar el procés.
ExecStartPre Manté les ordres que s'han d'executar abans que comenci el procés principal.
ExecStartPost Manté les ordres que s'han d'executar després que comenci el procés principal.
ExecReload Manté l'ordre per tornar a carregar la configuració del servei.
Reinicia Per reiniciar automàticament el servei en circumstàncies com ara en cas d'error, èxit, anormal, avortament i vigilant.
ReiniciaSec Per mantenir el nombre de segons després dels quals el servei es reiniciarà automàticament.

El ExecStart és una de les directrius crucials utilitzades a la secció Servei. Conté el ruta completa de l'executable que el servei s'executarà en invocar.

Conclusió

Un fitxer de servei systemd és un fitxer de configuració que està estructurat amb directives i ordres perquè puguin ser gestionats per systemd. Aquests fitxers contenen instruccions que indiquen com el sistema gestiona un servei. En aquesta guia, vaig tractar com accedir a un fitxer de servei systemd, les seves seccions i les directrius que gestionen els serveis. Per obtenir més informació sobre les instruccions del fitxer de servei, llegiu la guia de documentació oficial que es troba aquí .