Com crear un fitxer de servei a Linux

Com Crear Un Fitxer De Servei A Linux



El sistema systemd init ara forma part de gairebé totes les distribucions de Linux. Com a administrador o desenvolupador, creeu serveis que systemd pot gestionar. Per exemple, si voleu llançar serveis a l'arrencada o voleu controlar-los manualment, podeu fer-ho mitjançant un fitxer de servei personalitzat.

En aquest tutorial, explicaré com crear un fitxer de servei systemd a Linux.







Què és un fitxer de servei

Abans d'anar més lluny, entenem què és un fitxer de servei systemd i com es crea a Linux.



Un fitxer de servei systemd conté instruccions establertes perquè systemd gestioni el servei. Normalment conté tres seccions:



  • Unitat
  • Servei
  • Instal·lar

El Unitat conté informació bàsica sobre el servei, com ara una breu descripció, pàgines de documentació i un camí a les dependències. El Instal·lar La secció és opcional, però normalment gestiona en quin estat del sistema s'ha d'habilitar el servei.





El Servei La secció normalment es troba entre la secció Unitat i Instal·lació. Conté principalment el tipus de servei i la ruta dels executables que essencialment són ordres per executar en invocar el servei per systemd.

Aquí teniu l'aspecte d'una estructura de fitxers de servei típica.



[ Unitat ]

Directiva 1 =instrucció

Directiva 2 =instrucció



[ Servei ]

Directiva 1 =instrucció

Directiva 2 =instrucció



[ Instal·lar ]

Directiva 1 =instrucció

Directiva 2 =instrucció

Aquí, les directives són paràmetres que prenen les seves entrades respectives. Per exemple, el Descripció directiva pren una cadena del nom del servei. D'una manera semblant, ExecStart té en compte la ruta completa de l'executable.

Un fitxer de servei típic de ssh.servei es dóna a continuació.

Com crear un fitxer de servei

Per crear un servei systemd, cal entendre les directrius clau. En aquesta guia, tractaré les directrius essencials que us poden ajudar a crear un fitxer de servei totalment funcional.

La creació d'un fitxer de servei implica diversos passos, comencem per crear el fitxer d'script.

Nota: Per continuar amb el mètode esmentat a continuació, heu de tenir privilegis de root.

1. Creació d'un guió

El pas inicial consisteix en la creació del codi que s'executarà quan el servei comenci a funcionar. Per a aquest tutorial, estic creant un script bash que emmagatzemarà el temps d'activitat del sistema Linux i l'ús de la memòria.

Creem un script al directori actual amb el nom de myscript.sh utilitzant nano editor.

sudo nano myscript.sh

Ara, afegiu l'script que es mostra a continuació al fitxer i deseu-lo prement ctrl+x i llavors i .

#!/bin/bash

eco '>>Aquí teniu el temps d'activitat del vostre sistema<<' > casa / a si mateix / el meu fitxer.txt

temps de funcionament >> casa / a si mateix / el meu fitxer.txt

eco '>>Aquí teniu l'ús de memòria del vostre sistema<<' >> / casa / a si mateix / el meu fitxer.txt

lliure -m >> casa / a si mateix / el meu fitxer.txt

dormir 60

L'script conté un parell de cadenes d'eco i temps de funcionament i lliure ordres.

El temps de funcionament L'ordre a Linux s'utilitza per imprimir quant de temps s'ha executat un sistema i quants usuaris estan connectats amb una càrrega mitjana del sistema dels últims 1, 5 i 15 minuts.

El lliure L'ordre s'utilitza per imprimir l'ús de la memòria del sistema, mentre que el -m La bandera s'utilitza per imprimir la sortida MBs .

Per desar informació en un fitxer de text, utilitzem operadors especials anomenats operadors de redirecció. El > s'utilitza per inserir text al fitxer de text esmentat. Tanmateix, si el fitxer encara no existeix, es crearà. Mentre que >> L'operador s'utilitza per afegir el text al fitxer. El dormir La comanda s'utilitza per mantenir l'activitat del servei durant una durada mínima d'un minut.

Ara, feu que l'script sigui executable concedint els permisos necessaris.

sudo chmod +x myscript.sh

Ara l'script té el permís d'execució, passem a la secció següent.

Nota: Per fer que el fitxer de servei estigui lliure d'errors, utilitzeu la ruta absoluta del fitxer a l'script bash.

2. Creació d'un fitxer .service

A continuació, creeu un fitxer de servei amb el fitxer .servei extensió. El fitxer de servei s'ha de crear al fitxer /etc/systemd/system directori. Primer, navegueu fins a aquest directori utilitzant el cd comandament.

cd / etc / systemd / sistema

Podeu crear el fitxer de servei en qualsevol directori i, tanmateix, moure aquest fitxer a aquest directori.

Estic creant un fitxer de servei amb el meuservei.servei nom.

sudo nano el meuservei.servei

Ara, afegiu les línies següents al fitxer.

[ Unitat ]

Descripció =El meu servei

[ Servei ]

Tipus = simple

ExecStart = / paperera / xoc / casa / a si mateix / script.sh

Reinicia = en fracàs

[ Instal·lar ]

WantedBy =destí.multiusuari

Tingues en compte que [Unitat], [Servei], i [Instal·lar] són cas delicat . El fitxer de servei no funcionarà si algun d'ells s'esmenta incorrectament, com ara [UNITAT] o [SERVEI].

El nom del servei s'especifica com a El meu servei en el Descripció directiva de la [Unitat] secció.

El Tipus del servei és senzill en el [Servei] secció, que és el tipus predeterminat. Bifurcació , un tret , notificar , dbus , i inactiu són alguns dels altres tipus.

Si voleu que el servei sigui específic per a l'usuari, aleshores Usuari La directiva també es pot utilitzar amb el nom d'usuari de l'usuari. L'ús d'aquesta directiva farà dependre del permís de l'usuari del servei.

Mentre que ExecStart La directiva conté la ruta completa de l'executable. A l'exemple anterior, el fitxer d'script myscript.sh s'emmagatzema al /home/sam/ directori. Aquesta directiva, de fet, gestiona què executar quan un servei és invocat per systemd. Si no s'especifica el camí complet de l'ordre, es resoldrà automàticament per corregir camins absoluts com ara /usr/local/bin , /usr/bin/, i /bin . Està perfectament bé utilitzar el nom de l'executable sempre que estiguin als directoris d'ordres estàndard, però, en cas contrari, esmenteu el camí absolut. Tingueu en compte que també es poden utilitzar diverses ordres separades per punt i coma (;).

El [Instal·lar] la secció és opcional; tanmateix, indica com s'habilita el servei. El WantedBy La directiva pren els fitxers de destinació de nivell d'execució com a paràmetres. Diversos fitxers de destinació indicaven diferents nivells d'execució del sistema, com ara apagar , rescat , multiusuari , gràfic , i reiniciar .

El multi-user.target significa que el servei s'habilitarà quan el sistema estigui en un estat per permetre sessions no gràfiques multiusuari.

3. Activació del Servei

Per activar el servei, primer, torneu a carregar les configuracions del sistema utilitzant systemctl utilitat.

sudo systemctl daemon-reload

A continuació, torneu a activar el servei utilitzant systemctl comanda amb habilitar .

sudo systemctl habilitar el meuservei.servei

Per comprovar-ho, comproveu l'estat del servei mitjançant el estat systemctl comandament.

El servei s'està executant correctament.

Ara, llegim el fitxer de text el meu fitxer.txt el servei creat al /casa directori.

Com crear un fitxer de servei Systemd per a un usuari normal

El procediment de creació del fitxer de servei per a un usuari normal és similar al mètode de creació d'un fitxer de servei per part de l'administrador. Tanmateix, el directori per desar el fitxer de servei per als usuaris normals és diferent. Els usuaris normals han de col·locar els seus fitxers de servei al fitxer ~/.config/systemd/user . Aquest directori s'ha de crear amb el mkdir comandament.

mkdir ~ / .config / systemd / usuari

Per activar el servei per un usuari normal -usuari s'insereix l'ordre amb systemctl en lloc de sudo .

systemctl --usuari dimoni-recàrrega

systemctl --usuari habilitar SERVICE-NAME.servei

systemctl --usuari estat SERVICE-NAME.service

El -usuari s'utilitza per gestionar els fitxers de servei del sistema de l'usuari.

Com eliminar el fitxer de servei

Per eliminar el fitxer de servei, en primer lloc, cal aturar el servei.

sudo systemctl atura SERVICE-NAME.service

Comproveu l'estat utilitzant estat systemctl comanda per saber si el servei està aturat o no. A continuació, elimineu el fitxer de servei amb el fitxer rm comandament.

sudo rm / etc / systemd / sistema / SERVICE-NAME.servei

Ara, torneu a carregar systemd configuració.

sudo systemctl daemon-reload

Conclusió

El servei de sistema personalitzat és avantatjós en diversos escenaris. En aquesta guia, hem après com crear un fitxer de servei de sistema personalitzat per a un administrador del sistema i com els usuaris normals poden crear un fitxer de servei. A més, també veiem el procediment d'eliminació del fitxer de servei.