Kako ustvariti servisno datoteko v Linuxu

Kako Ustvariti Servisno Datoteko V Linuxu



Systemd init sistem je zdaj del skoraj vseh distribucij Linuxa. Kot skrbnik ali razvijalec ustvarite storitve, ki jih sistemd lahko upravlja. Na primer, če želite zagnati storitve ob zagonu ali jih želite ročno nadzorovati, lahko to storite prek storitvene datoteke po meri.

V tej vadnici bom šel skozi postopek ustvarjanja storitvene datoteke systemd v sistemu Linux.







Kaj je servisna datoteka

Preden gremo naprej, poglejmo, kaj je storitvena datoteka systemd in kako je ustvarjena v Linuxu.



Storitvena datoteka systemd vsebuje navodila, nastavljena za systemd za upravljanje storitve. Običajno vsebuje tri razdelke:



  • Enota
  • Storitev
  • Namestite

The Enota vsebuje osnovne informacije o storitvi, kot so kratek opis, strani z dokumentacijo in pot do odvisnosti. The Namestite je neobvezen, vendar običajno upravlja, v katerem stanju sistema naj bo storitev omogočena.





The Storitev razdelek je običajno stisnjen med razdelkom Enota in Namestitev. Vsebuje predvsem vrsto storitve in pot do izvedljivih datotek, ki so v bistvu ukazi, ki jih je treba izvesti ob priklicu storitve s strani systemd.

Tukaj je videti tipična struktura storitvene datoteke.



[ Enota ]

Direktiva1 =navodilo

Direktiva2 =navodilo



[ Storitev ]

Direktiva1 =navodilo

Direktiva2 =navodilo



[ Namestite ]

Direktiva1 =navodilo

Direktiva2 =navodilo

Tukaj so direktive parametri, ki sprejmejo svoj vnos. Na primer, Opis direktiva sprejme niz imena storitve. Na podoben način, ExecStart upošteva celotno pot izvedljive datoteke.

Tipična servisna datoteka za ssh.service je podan spodaj.

Kako ustvariti servisno datoteko

Za ustvarjanje storitve systemd je potrebno razumeti ključne direktive. V tem priročniku bom obravnaval bistvena navodila, ki vam lahko pomagajo ustvariti popolnoma delujočo storitveno datoteko.

Ustvarjanje storitvene datoteke vključuje več korakov, začnimo z ustvarjanjem skriptne datoteke.

Opomba: Če želite nadaljevati s spodaj omenjeno metodo, morate imeti korenske pravice.

1. Ustvarjanje skripta

Začetni korak vključuje ustvarjanje kode, ki se bo izvajala, ko bo storitev začela delovati. Za to vadnico ustvarjam skript bash, ki bo shranil čas delovanja sistema Linux in uporabo pomnilnika.

Ustvarimo skript v trenutnem imeniku z imenom myscript.sh z uporabo urejevalnika nano.

sudo nano myscript.sh

Zdaj v datoteko dodajte spodnji skript in ga shranite s pritiskom na ctrl+x in potem in .

#!/bin/bash

odmev '>>Tu je čas delovanja vašega sistema<<' > domov / sebe / moja datoteka.txt

uptime >> domov / sebe / moja datoteka.txt

odmev '>>Tukaj je uporaba pomnilnika vašega sistema<<' >> / domov / sebe / moja datoteka.txt

prost -m >> domov / sebe / moja datoteka.txt

spati 60

Skript vsebuje nekaj odmevnih nizov in uptime in prost ukazi.

The uptime ukaz v Linuxu se uporablja za izpis, kako dolgo je sistem deloval in koliko uporabnikov je povezanih s povprečno obremenitvijo sistema zadnjih 1, 5 in 15 minut.

The prost ukaz se uporablja za tiskanje porabe pomnilnika sistema, medtem ko se ukaz -m zastavica se uporablja za tiskanje izhoda MB .

Za shranjevanje informacij v besedilno datoteko uporabljamo posebne operatorje, imenovane operaterji preusmeritve. The > se uporablja za vstavljanje besedila v omenjeno besedilno datoteko. Če pa datoteka še ne obstaja, bo ustvarjena. Medtem ko je >> se uporablja za dodajanje besedila v datoteko. The spati ukaz se uporablja za vzdrževanje dejavnosti storitve za najmanj eno minuto.

Zdaj naredite skript izvršljiv tako, da mu dodelite potrebna dovoljenja.

sudo chmod +x myscript.sh

Skript ima zdaj dovoljenje za izvajanje, pojdimo na naslednji razdelek.

Opomba: Da bo servisna datoteka brez napak, uporabite absolutno pot datoteke v skriptu bash.

2. Ustvarjanje storitvene datoteke

Nato ustvarite servisno datoteko z .storitev razširitev. Storitveno datoteko je treba ustvariti v /etc/systemd/system imenik. Najprej se pomaknite do tega imenika z uporabo cd ukaz.

cd / itd / systemd / sistem

Storitveno datoteko lahko ustvarite v katerem koli imeniku in to datoteko pozneje premaknete v ta imenik.

Ustvarjam servisno datoteko z mojastoritev.storitev ime.

sudo nano mojastoritev.storitev

Zdaj v datoteko dodajte naslednje vrstice.

[ Enota ]

Opis =Moja storitev

[ Storitev ]

Vrsta =preprosto

ExecStart = / koš / bash / domov / sebe / skripta.sh

Ponovni zagon =ob neuspehu

[ Namestite ]

WantedBy =multi-user.target

Upoštevajte to [Enota], [Storitev], in [Namesti] so razlikuje med velikimi in malimi črkami . Storitvena datoteka ne bo delovala, če je katera od njih napačno omenjena, na primer [UNIT] ali [SERVICE].

Ime storitve je navedeno kot Moja služba v Opis direktiva [Enota] razdelek.

The Vrsta storitve je preprosto v [Storitev] razdelek, ki je privzeta vrsta. Vilice , en poskus , obvestiti , dbus , in v mirovanju so nekatere druge vrste.

Če želite, da je storitev prilagojena uporabniku, potem Uporabnik lahko uporabite tudi z uporabniškim imenom uporabnika. Z uporabo te direktive bo dovoljenje uporabnika storitve odvisno.

Medtem ko je ExecStart direktiva vsebuje celotno pot do izvedljive datoteke. V zgornjem primeru je datoteka skripta myscript.sh je shranjen v /domov/sam/ imenik. Ta direktiva dejansko upravlja, kaj naj se izvede, ko sistem prikliče storitev. Če celotna pot ukaza ni navedena, bo samodejno razrešen, da popravi absolutne poti, kot je /usr/local/bin , /usr/bin/, in /bin . Popolnoma v redu je, da uporabite ime izvršljive datoteke, dokler so v standardnih imenikih ukazov, sicer pa navedite absolutno pot. Upoštevajte, da je mogoče uporabiti tudi več ukazov, ki so ločeni s podpičjem (;).

The [Namesti] razdelek ni obvezen; vendar označuje, kako je storitev omogočena. The WantedBy direktiva vzame ciljne datoteke na ravni izvajanja kot parametre. Različne ciljne datoteke so pokazale različne ravni izvajanja sistema, kot je npr ugasniti , reševanje , večuporabniški , grafično , in ponovni zagon .

The multi-user.target pomeni, da bo storitev omogočena, ko bo sistem v stanju, ki dovoljuje večuporabniške negrafične seje.

3. Aktivacija storitve

Če želite aktivirati storitev, najprej znova naložite konfiguracije systemd z uporabo systemctl uporabnost.

sudo systemctl daemon-reload

Nato znova aktivirajte storitev z uporabo systemctl ukaz z omogočiti .

sudo systemctl omogočiti mojastoritev.storitev

Če želite preveriti, preverite stanje storitve z uporabo status systemctl ukaz.

Storitev uspešno deluje.

Zdaj pa preberimo besedilno datoteko moja datoteka.txt storitev, ustvarjena v /domov imenik.

Kako ustvariti storitveno datoteko Systemd za običajnega uporabnika

Postopek izdelave servisne datoteke za običajnega uporabnika je podoben načinu izdelave servisne datoteke s strani skrbnika. Vendar je imenik za shranjevanje storitvene datoteke za običajne uporabnike drugačen. Običajni uporabniki morajo svoje storitvene datoteke postaviti v ~/.config/systemd/user . Ta imenik je treba ustvariti z uporabo mkdir ukaz.

mkdir ~ / .config / systemd / uporabnik

Za aktiviranje storitve s strani običajnega uporabnika – uporabnik ukaz je vstavljen z systemctl namesto sudo .

systemctl --uporabnik daemon-reload

systemctl --uporabnik omogočiti IME-STORITVE.storitev

systemctl --uporabnik status SERVICE-NAME.service

The – uporabnik možnost se uporablja za upravljanje uporabniških storitvenih datotek systemd.

Kako odstraniti servisno datoteko

Če želite odstraniti servisno datoteko, je treba najprej ustaviti storitev.

sudo systemctl zaustavi SERVICE-NAME.service

Preverite stanje z uporabo status systemctl ukaz, če želite vedeti, ali je storitev ustavljena ali ne. Nato odstranite servisno datoteko z uporabo rm ukaz.

sudo rm / itd / systemd / sistem / IME-STORITVE.storitev

Zdaj znova naložite systemd konfiguracijo.

sudo systemctl daemon-reload

Zaključek

Storitev systemd po meri je ugodna v različnih scenarijih. V tem priročniku smo izvedeli, kako ustvariti storitveno datoteko systemd po meri za sistemskega skrbnika in kako lahko običajni uporabniki ustvarijo storitveno datoteko. Poleg tega vidimo tudi postopek odstranitve storitvene datoteke.