Teenused Linuxis käivituvad kohe, kui teie süsteem käivitub või taaskäivitub. Siit saate teada, kuidas saate luua oma Linuxi arvutis automaatselt käivituva süsteemse teenuse.
systemd on paljude tuntud Linuxi distributsioonide teenusehaldur. Teenus on programmi üksus, mis tavaliselt töötab taustal. Teenused käivituvad oma olemuselt automaatselt niipea, kui süsteem käivitub ja võivad töötada järelevalveta.
Kui teil on vaja luua automaatselt käivituv ülesanne või programm, mis käivitub iga kord, kui süsteemi käivitate või taaskäivitage, võite kaaluda uue teenuse loomist. Õpime, kuidas luua Linuxis uut kohandatud süsteemset teenust.
1. samm: teenusefaili loomine
Uue süsteemiteenuse faili loomiseks on vaja teha mõned sammud. Esimene neist on teenuse üksusefaili loomine. Enne teenusefaili loomist peate mõistma selle struktuuri.
Uurime teenusefaili, tõmmates teie Linuxi süsteemist tõelise, töötava teenusefaili. Allpool näete teenuse vmtools deemoni teenuse faili.
See konkreetne teenus ei pruugi teie süsteemis olemas olla, välja arvatud juhul, kui kasutate VMware'is ka Linuxit, millele on installitud VMware tööriistad. Kõnealune teenus ei ole oluline, kuna kõikidel teenustel või õigemini teenindusüksuse failidel on sama baasstruktuur koos teatud kohandustega.
Kõigil süsteemiteenuste failidel peab olema kolm jaotist: [teenus], [Ühik]ja [Installi]ja iga jaotise all mõned parameetrid. Siin on, mida iga jaotis sisaldab ja miks need on olulised.
1. Üksus
The Üksus jaotis sisaldab olulisi metaandmeid, nagu teenuse kirjeldus ja sõltuvused. Sellel on kolm parameetrit: Kirjeldus, Enneja Pärast. Nagu sama viitab, Kirjeldus parameeter annab teatud konteksti teenusest ja sellest, mida see teeb.
The Enne ja Pärast parameetrid määravad tingimused, mis peavad olema täidetud teenuse käivitamiseks. Näiteks kui käivitate veebiserveri teenust, soovite, et see käivituks alles pärast seda, kui võrguteenus on võrgus. Nii et määraksite väärtuse Pärast parameeter võrguteenusele.
2. Teenindus
The Teenindus jaotis sisaldab kahte kohustuslikku parameetrit: ExecStart, Tüüpja mõned muud valikulised parameetrid, nagu ExecReload, ja veel.
ExecStart määrab teenuse käivitamisel käivitatava käsu, samas kui Tüüp parameeter määrab kudemisprotsessi tüübi.
3. Installige
Seda jaotist ja selle andmeid kutsutakse välja alati, kui lubate või keelate teenuse systemctl käsk.
Sellel on paar parameetrit. Üks levinumaid ja vajalikke on WantedBy. The WantedBy parameeter määrab sihtüksused, mis peaksid käivituma, kui teenus on lubatud. Vaikeväärtus on multi-user.target.
Siin mainitud parameetrid ei ole ainsad parameetrid, mida saate ühikfailis määrata. Parameetrite täieliku loendi leiate veebisaidilt ametlik systemd.exec dokumentatsioon või sisestades mees systemd.exec terminalis.
Süsteemi teenindusüksuse fail lõpeb alati tähega ".teenus" laiendust ja need tuleb salvestada /etc/systemd/system/ kataloog. Looge teenusefail kasutades puutekäsku kõrgendatud õigustega, lisades selle ette sudo käsk:
sudo touch /etc/systemd/system/.teenus
Nüüd, kui olete teenusefaili loonud, asume selle täitmiseks vajaliku süntaksiga, et teenus kehtiks ja töötaks.
2. samm: teenusefaili konfigureerimine
Demonstreerimiseks loote näidisteenuse, mis käivitatakse Nmap, et skannida oma masina porte ja salvestage väljund faili iga kolmekümne sekundi järel. Selle ülesande täitmiseks tehke teenindusüksuse faili struktureerimiseks järgmiselt.
[Ühik]
Description=Kohandatud nmap teenuse demonstratsioon.
After=network.target[teenus]
Tüüp = lihtne
Kasutaja=juur
ExecStart=/usr/bin/nmap -sS -O -oN /home//results.txt localhost
Taaskäivita = alati
RestartSec=30
[Installi]
WantedBy=multi-user.target
Kuigi siin mainitud parameetreid on eelnevalt selgitatud, vaatame, kuidas need mõjutavad meie äsja loodud teenust, ja uurime ka selles üksuses tutvustatud uusi: Taaskäivita, RestartSecja Kasutaja.
Iga jaotise parameetrid tähendavad järgmist.
- Kirjeldus: Inimloetav tekst teenuse funktsioonide kirjeldamiseks.
- After=network.target: Dikteerib süsteemile, millest see teenus sõltub network.target ja see peaks algama alles pärast network.target teenus on käivitatud. Pange tähele, et Pärast ei kasutata otsese sõltuvussuhte loomiseks, see toimib lihtsalt päästikuna.
- Tüüp = lihtne: Teenusetüüpe on mitu. Selle esitluse teenus on aga tavaline protsess ja seetõttu me kuulutame seda nii. Selle kõik erinevad väärtused leiate ametlikult dokumentatsiooni lehelt, millele viidati varem.
- Taaskäivita = alati: See tähendab, et iga kord, kui teenus väljub, peaks see alati taaskäivitama.
- RestartSec=30: See seab iga teenuse käivitamise vaheliseks intervalliks 30 sekundit.
- User=root: See määrab, et teenus töötab juurkasutajana. Sel juhul on see kohustuslik samm, kuna Nmap ei saa töötada ilma administraatoriõigusteta.
- ExecStart: See direktiiv sisaldab käivitatava programmi absoluutset teed koos kõigi programmi nõuetekohaseks toimimiseks vajalike lippude või argumentidega.
- WantedBy=multi-user.target: See teenusefaili parameeter määrab, milline sihtmärk peaks teenust sisaldama või "soovima". Kui teenus on sihtmärki kaasatud, tähendab see, et teenus peaks käivituma, kui süsteem alglaadimisprotsessi ajal selle eesmärgi saavutab. Sel juhul peaks teenus käivituma, kui süsteem lülitub mitme kasutaja režiimi. Mitme kasutaja režiim on olek, kus süsteem on täielikult käivitatud ja võimaldab mitmel kasutajal süsteemi sisse logida ja kasutada.
3. samm: teenuse lubamine ja käivitamine
Nüüd, kui olete üksuse faili loonud, on teenuse aktiveerimiseks jäänud vaid selle lubamine ja käitamine. Teenuse saate lubada ja käivitada käsu systemctl abil.
Teenuse lubamiseks, käivitamiseks ja oleku kontrollimiseks kasutage süsteemictl-i järgmiselt.
sudo systemctl lubamine .teenus
sudo systemctl start .teenus
sudo systemctl olek .teenus
Nüüd peaks teie kohandatud teenus olema valmis ja töötama! Sel juhul peaksite nägema Nmap-skannimist iga kolmekümne sekundi järel ja väljund salvestatakse tulemused.txt fail kodukataloogis.
Süsteemse teenuse seadistamine Linuxis on lihtne!
Kuigi kohandatud teenuse nullist seadistamine võib alguses tunduda hirmutav, on see üsna lihtne viis seadistada luua isetäitev, järelevalveta protsess, et täita teie eest korduvaid ülesandeid ja suurendada teie töövõimet tootlikkus.
Demoteenuse puhul oleme vaevu mõistnud, kuidas saate teenust konfigureerida ja seadistada. Et saada teavet selle kohta, kuidas oma teenust kohandada, on soovitatav läbida märkuses lingitud ametlik dokumentatsioon.
Kui teenuse seadistamine ja hooldamine tundub teile liiga raske ülesanne, kaaluge alternatiivset viisi korduvate toimingute automatiseerimiseks Linuxis.