Kuidas luua teenusefaili Linuxis

Kuidas Luua Teenusefaili Linuxis



Systemd init süsteem on nüüd osa peaaegu kõigist Linuxi distributsioonidest. Administraatori või arendajana loote teenuseid, mida systemd saab hallata. Näiteks kui soovite käivitada teenuseid alglaadimisel või soovite neid käsitsi juhtida, saate seda teha kohandatud teenusefaili kaudu.

Selles õpetuses käsitlen Linuxis süsteemiteenuse faili loomist.







Mis on teenusefail

Enne kui läheme edasi, mõistkem, mis on süsteemiteenuse fail ja kuidas see Linuxis luuakse.



Systemd teenusefail sisaldab juhiseid, mis on süsteemile määratud teenuse haldamiseks. Tavaliselt sisaldab see kolme jaotist:



  • Üksus
  • Teenindus
  • Installige

The Üksus jaotis sisaldab põhiteavet teenuse kohta, nagu lühikirjeldus, dokumentatsioonilehed ja sõltuvuste tee. The Installige jaotis on valikuline, kuid tavaliselt haldab see, millises süsteemi olekus teenus peaks olema lubatud.





The Teenindus sektsioon jääb tavaliselt jaotise Üksus ja installi vahele. See sisaldab peamiselt teenuse tüüpi ja käivitatavate failide teed, mis on sisuliselt käsud, mida süsteemid teenuse käivitamisel käivitavad.

Siin näeb välja tüüpiline teenusefaili struktuur.



[ Üksus ]

Direktiiv1 =juhend

Direktiiv2 =juhend



[ Teenindus ]

Direktiiv1 =juhend

Direktiiv2 =juhend



[ Installige ]

Direktiiv1 =juhend

Direktiiv2 =juhend

Siin on direktiivid parameetrid, mis võtavad vastava sisendi. Näiteks Kirjeldus direktiiv võtab teenuse nime stringi. Sarnasel viisil, ExecStart võtab arvesse käivitatava faili täielikku teed.

Tüüpiline teenindusfail ssh.service on toodud allpool.

Kuidas luua teenusefaili

Süsteemse teenuse loomiseks on vaja mõista põhijuhiseid. Selles juhendis käsitlen olulisi juhiseid, mis aitavad teil luua täielikult toimiva teenusefaili.

Teenusfaili loomine hõlmab mitut sammu, alustame skriptifaili loomisega.

Märge: Allpool mainitud meetodiga jätkamiseks peavad teil olema administraatoriõigused.

1. Skripti loomine

Esimene samm hõlmab koodi loomist, mis käivitatakse siis, kui teenus alustab oma tööd. Selle õpetuse jaoks loon bash-skripti, mis salvestab Linuxi süsteemi tööaja ja mälukasutuse.

Loome praeguses kataloogis skripti nimega myscript.sh nano redaktori abil.

sudo nano myscript.sh

Nüüd lisage faili allpool toodud skript ja salvestage see, vajutades ctrl+x ja siis ja .

#!/bin/bash

kaja '>>Siin on teie süsteemi tööaeg<<' > Kodu / ise / minu fail.txt

tööaeg >> Kodu / ise / minu fail.txt

kaja '>>Siin on teie süsteemi mälukasutus<<' >> / Kodu / ise / minu fail.txt

tasuta -m >> Kodu / ise / minu fail.txt

magama 60

Skript sisaldab paari kajastringi ja tööaeg ja tasuta käske.

The tööaeg Linuxis kasutatakse käsku printimiseks, kui kaua süsteem on töötanud ja kui palju kasutajaid on ühendatud keskmise süsteemikoormusega viimase 1, 5 ja 15 minuti jooksul.

The tasuta käsku kasutatakse süsteemi mälukasutuse printimiseks, samas kui -m lippu kasutatakse väljundi sissetrükkimiseks MBs .

Teabe salvestamiseks tekstifaili kasutame spetsiaalseid operaatoreid, mida nimetatakse ümbersuunamisoperaatoriteks. The > operaatorit kasutatakse teksti lisamiseks nimetatud tekstifaili. Kui aga faili veel ei ole, luuakse see. Samal ajal kui >> operaatorit kasutatakse faili teksti lisamiseks. The magama käsku kasutatakse teenuse aktiivsuse säilitamiseks vähemalt ühe minuti jooksul.

Nüüd muutke skript käivitatavaks, andes vajalikud õigused.

sudo chmod +x myscript.sh

Skriptil on nüüd täitmisluba, jätkame järgmise jaotisega.

Märge: Teenusfaili veavabaks muutmiseks kasutage bash-skriptis faili absoluutset teed.

2. Teenusfaili loomine

Järgmisena looge teenusefail .teenus pikendamine. Teenusfail tuleb luua /etc/systemd/system kataloog. Esmalt navigeerige sellesse kataloogi, kasutades nuppu cd käsk.

cd / jne / süsteemne / süsteem

Saate luua teenusefaili mis tahes kataloogis ja hiljem selle faili sellesse kataloogi teisaldada.

Loon teenusefaili rakendusega minuteenus.teenus nimi.

sudo nano minuteenus.teenus

Nüüd lisage faili järgmised read.

[ Üksus ]

Kirjeldus =Minu teenus

[ Teenindus ]

Tüüp =lihtne

ExecStart = / prügikast / bash / Kodu / ise / script.sh

Taaskäivita =tõrke korral

[ Installige ]

WantedBy =multi-user.target

Pange tähele, et [Üksus], [teenus], ja [Installi] on tõstutundlik . Teenindusfail ei tööta, kui mõnda neist on valesti mainitud, näiteks [ÜHIK] või [SERVICE].

Teenuse nimi on määratud kui Minu Teenus aastal Kirjeldus käskkiri [Ühik] osa.

The Tüüp teenusest on lihtne aastal [teenus] jaotis, mis on vaiketüüp. Hargnemine , üks lask , teatama , dbus , ja tühikäik on mõned muud tüübid.

Kui soovite muuta teenuse kasutajapõhiseks, siis Kasutaja direktiivi saab kasutada ka koos kasutaja kasutajanimega. Selle direktiivi kasutamine muudab teenuse kasutaja loa sõltuvaks.

Samal ajal kui ExecStart direktiiv sisaldab käivitatava faili täielikku teed. Ülaltoodud näites skriptifail myscript.sh on salvestatud /home/sam/ kataloog. See direktiiv juhib tegelikult seda, mida käivitada, kui systemd teenust kutsub. Kui käsu täielikku teed pole määratud, lahendatakse see automaatselt absoluutsete teede parandamiseks, näiteks /usr/local/bin , /usr/bin/, ja /bin . Täiesti hea on kasutada käivitatavat nime seni, kuni need on standardsetes käskude kataloogides, kuid muidu mainige absoluutset teed. Pange tähele, et kasutada saab ka mitut käsku, mis on eraldatud semikooloniga (;).

The [Installi] jaotis on valikuline; see aga näitab, kuidas teenus on lubatud. The WantedBy direktiiv võtab parameetritena käitamistaseme sihtfailid. Erinevad sihtfailid näitasid süsteemi erinevaid käitamistasemeid, näiteks väljalülitamine , päästa , mitme kasutajaga , graafiline ja taaskäivitage .

The multi-user.target tähendab, et teenus lubatakse, kui süsteem on olekus, mis võimaldab mitme kasutajaga mittegraafilisi seansse.

3. Teenuse aktiveerimine

Teenuse aktiveerimiseks laadige esmalt uuesti süsteemi konfiguratsioonid kasutades systemctl kasulikkust.

sudo systemctl deemon-reload

Seejärel aktiveerige teenus uuesti kasutades systemctl käsuga lubada .

sudo systemctl lubada minuteenus.teenus

Kontrollimiseks kontrollige teenuse olekut kasutades systemctl olek käsk.

Teenus töötab edukalt.

Nüüd loeme tekstifaili minu fail.txt aastal loodud teenus /Kodu kataloog.

Kuidas luua tavakasutajale süsteemiteenuse faili

Tavakasutajale teenusefaili loomise protseduur sarnaneb administraatori poolt teenusefaili loomise meetodiga. Tavakasutajate teenusefaili salvestamise kataloog on aga erinev. Tavakasutajad peavad oma teenusefailid paigutama ~/.config/systemd/user . See kataloog tuleb luua kasutades mkdir käsk.

mkdir ~ / .config / süsteemne / kasutaja

Teenuse aktiveerimiseks tavakasutaja poolt – kasutaja käsk sisestatakse systemctl selle asemel sudo .

systemctl --kasutaja deemon-reload

systemctl --kasutaja lubada SERVICE-NAME.service

systemctl --kasutaja olek SERVICE-NAME.service

The – kasutaja suvandit kasutatakse kasutaja süsteemsete teenusefailide haldamiseks.

Kuidas teenusefaili eemaldada

Teenusfaili eemaldamiseks tuleb esmalt teenus peatada.

sudo systemctl stop SERVICE-NAME.service

Kontrollige olekut kasutades systemctl olek käsk, et teada saada, kas teenus on peatatud või mitte. Seejärel eemaldage teenusefail, kasutades nuppu rm käsk.

sudo rm / jne / süsteemne / süsteem / SERVICE-NAME.service

Nüüd laadige uuesti süsteemne konfiguratsiooni.

sudo systemctl deemon-reload

Järeldus

Kohandatud systemd-teenus on kasulik erinevatel stsenaariumidel. Selles juhendis õppisime, kuidas luua süsteemiadministraatori jaoks kohandatud süsteemiteenuse faili ja kuidas tavakasutajad saavad teenusefaili luua. Lisaks näeme ka teenusefaili eemaldamise protseduuri.