Ako vytvoriť súbor služby v systéme Linux

Ako Vytvorit Subor Sluzby V Systeme Linux



Systém systemd init je teraz súčasťou takmer všetkých distribúcií Linuxu. Ako správca alebo vývojár vytvárate služby, ktoré môže systemd spravovať. Napríklad, ak chcete spustiť služby pri zavádzaní alebo ich chcete manuálne ovládať, môžete to urobiť prostredníctvom súboru vlastnej služby.

V tomto návode prejdem, ako vytvoriť servisný súbor systemd v systéme Linux.







Čo je súbor služieb

Predtým, ako pôjdeme ďalej, poďme pochopiť, čo je súbor služby systemd a ako sa vytvára v systéme Linux.



Servisný súbor systemd obsahuje inštrukcie nastavené pre systemd na manažovanie služby. Zvyčajne obsahuje tri časti:



  • Jednotka
  • servis
  • Inštalácia

The Jednotka časť obsahuje základné informácie o službe, ako je krátky popis, stránky dokumentácie a cesta k závislostiam. The Inštalácia sekcia je voliteľná, ale zvyčajne riadi, v akom stave systému by mala byť služba povolená.





The servis sekcia je zvyčajne vložená medzi sekciu Unit a Install. Primárne obsahuje typ služby a cestu k spustiteľným súborom, ktoré sú v podstate príkazmi, ktoré sa majú vykonať pri vyvolaní služby systémom systemd.

Takto vyzerá typická štruktúra servisného súboru.



[ Jednotka ]

Smernica1 =návod

Smernica2 =návod



[ servis ]

Smernica1 =návod

Smernica2 =návod



[ Inštalácia ]

Smernica1 =návod

Smernica2 =návod

Direktívy sú tu parametre, ktoré majú svoj príslušný vstup. Napríklad, Popis Direktíva preberá reťazec názvu služby. Podobným spôsobom, ExecStart berie do úvahy úplnú cestu k spustiteľnému súboru.

Typický servisný súbor ssh.service je uvedené nižšie.

Ako vytvoriť súbor služby

Na vytvorenie systemd služby je potrebné pochopiť kľúčové direktívy. V tejto príručke sa budem zaoberať základnými pokynmi, ktoré vám môžu pomôcť vytvoriť plne funkčný súbor služieb.

Vytvorenie súboru služby zahŕňa viacero krokov, začnime vytvorením súboru skriptu.

Poznámka: Ak chcete pokračovať v metóde uvedenej nižšie, musíte mať práva root.

1. Vytvorenie skriptu

Počiatočný krok zahŕňa vytvorenie kódu, ktorý sa vykoná, keď služba začne svoju činnosť. Pre tento tutoriál vytváram bash skript, ktorý bude ukladať dobu prevádzky systému Linux a využitie pamäte.

Vytvorme skript v aktuálnom adresári s názvom myscript.sh pomocou nano editora.

sudo nano myscript.sh

Teraz pridajte skript uvedený nižšie do súboru a uložte ho stlačením ctrl+x a potom a .

#!/bin/bash

ozvena '>>Tu je doba prevádzkyschopnosti vášho systému<<' > Domov / sám / myfile.txt

uptime >> Domov / sám / myfile.txt

ozvena '>>Tu je využitie pamäte vášho systému<<' >> / Domov / sám / myfile.txt

zadarmo -m >> Domov / sám / myfile.txt

spať 60

Skript obsahuje niekoľko reťazcov ozveny a uptime a zadarmo príkazy.

The uptime príkaz v systéme Linux sa používa na vypísanie toho, ako dlho systém beží a koľko používateľov je pripojených s priemerným zaťažením systému za posledných 1, 5 a 15 minút.

The zadarmo príkaz sa používa na tlač využitia pamäte systému, zatiaľ čo príkaz -m príznak sa používa na tlač výstupu MB .

Na uloženie informácií do textového súboru používame špeciálne operátory nazývané operátory presmerovania. The > operátor slúži na vloženie textu do spomínaného textového súboru. Ak však súbor ešte neexistuje, vytvorí sa. Kým >> operátor sa používa na pridanie textu do súboru. The spať príkaz sa používa na udržanie aktivity služby po dobu minimálne jednej minúty.

Teraz urobte skript spustiteľným udelením potrebných povolení.

sudo chmod +x myscript.sh

Skript má teraz povolenie na spustenie, poďme na ďalšiu časť.

Poznámka: Aby bol súbor služby bezchybný, použite absolútnu cestu k súboru v bash skripte.

2. Vytvorenie súboru .service

Ďalej vytvorte súbor služby s .servis rozšírenie. Servisný súbor musí byť vytvorený v /etc/systemd/system adresár. Najprv prejdite do tohto adresára pomocou cd príkaz.

cd / atď / systemd / systém

Súbor služby môžete vytvoriť v ľubovoľnom adresári a neskôr tento súbor presunúť do tohto adresára.

Vytváram súbor služby s myservice.service názov.

sudo nano myservice.service

Teraz do súboru pridajte nasledujúce riadky.

[ Jednotka ]

Popis = Moja služba

[ servis ]

Typ =jednoduché

ExecStart = / kôš / bash / Domov / sám / script.sh

Reštart = pri poruche

[ Inštalácia ]

WantedBy =multi-user.target

Poznač si to [Jednotka], [Služba], a [Inštalácia] rozlišovať malé a veľké písmená . Servisný súbor nebude fungovať, ak je niektorý z nich uvedený nesprávne, napríklad [UNIT] alebo [SERVICE].

Názov služby je špecifikovaný ako Moja služba v Popis smernice o [Jednotka] oddiele.

The Typ služby je jednoduché v [Služba] sekcia, ktorá je predvoleným typom. Rozdvojenie , jeden výstrel , oznámiť , dbus , a nečinný sú niektoré z ďalších typov.

Ak chcete, aby bola služba špecifická pre používateľa, potom Používateľ direktívu možno použiť aj s užívateľským menom užívateľa. Použitím tejto smernice bude závisieť povolenie používateľa služby.

Kým ExecStart obsahuje úplnú cestu k spustiteľnému súboru. Vo vyššie uvedenom príklade je to súbor skriptu myscript.sh je uložený v /domov/sam/ adresár. Táto smernica v skutočnosti riadi, čo sa má vykonať, keď je služba vyvolaná systémom systemd. Ak nie je zadaná úplná cesta príkazu, automaticky sa vyrieši oprava absolútnych ciest, ako napr /usr/local/bin , /usr/bin/, a /bin . Je úplne v poriadku použiť názov spustiteľného súboru, pokiaľ sa nachádza v štandardných adresároch príkazov, inak však uveďte absolútnu cestu. Všimnite si, že je možné použiť aj viacero príkazov, ktoré sú oddelené bodkočiarkou (;).

The [Inštalácia] sekcia je voliteľná; označuje však, ako je služba povolená. The WantedBy berie ako parametre cieľové súbory na úrovni spustenia. Rôzne cieľové súbory indikovali rôzne úrovne spustenia systému, ako napr vypnúť , záchrana , viacužívateľský , grafické , a reštartovať .

The viacužívateľský.cieľ znamená, že služba bude povolená, keď je systém v stave umožňujúcom viacužívateľské negrafické relácie.

3. Aktivácia Služby

Ak chcete službu aktivovať, najprv znova načítajte konfigurácie systemd pomocou systemctl užitočnosť.

sudo systemctl daemon-reload

Potom znova aktivujte službu pomocou systemctl príkaz s povoliť .

sudo systemctl povoliť myservice.service

Pre overenie skontrolujte stav služby pomocou stav systemctl príkaz.

Služba je úspešne spustená.

Teraz si prečítajme textový súbor myfile.txt služba vytvorená v /Domov adresár.

Ako vytvoriť súbor služby Systemd pre bežného používateľa

Postup vytvorenia servisného súboru pre bežného užívateľa je podobný ako pri vytváraní servisného súboru administrátorom. Adresár na uloženie súboru služby pre bežných používateľov je však odlišný. Bežní používatelia musia umiestniť svoje súbory služieb do ~/.config/systemd/user . Tento adresár musí byť vytvorený pomocou mkdir príkaz.

mkdir ~ / .config / systemd / užívateľ

Na aktiváciu služby bežným používateľom – užívateľ príkaz sa vloží s systemctl namiesto sudo .

systemctl --užívateľ daemon-reload

systemctl --užívateľ povoliť SERVICE-NAME.service

systemctl --užívateľ stav SERVICE-NAME.service

The – užívateľ možnosť sa používa na spravovanie servisných súborov systemd používateľa.

Ako odstrániť súbor služby

Ak chcete odstrániť súbor služby, najprv je potrebné službu zastaviť.

sudo systemctl stop SERVICE-NAME.service

Skontrolujte stav pomocou stav systemctl príkaz, aby ste vedeli, či je služba zastavená alebo nie. Potom odstráňte súbor služby pomocou rm príkaz.

sudo rm / atď / systemd / systém / SERVICE-NAME.service

Teraz znova načítajte systemd konfigurácia.

sudo systemctl daemon-reload

Záver

Vlastná systémová služba je výhodná v rôznych scenároch. V tejto príručke sme sa naučili, ako vytvoriť vlastný súbor služby systemd pre správcu systému a ako môžu normálni používatelia vytvoriť súbor služby. Ďalej vidíme aj postup odstránenia servisného súboru.