Systemd init sistema dabar yra beveik visų Linux platinimų dalis. Kaip administratorius arba kūrėjas kuriate paslaugas, kurias systemd gali valdyti. Pavyzdžiui, jei norite paleisti paslaugas įkrovos metu arba norite jas valdyti rankiniu būdu, tai galite padaryti naudodami pasirinktinį paslaugos failą.
Šiame vadove apžvelgsiu, kaip sukurti sistemos paslaugos failą „Linux“.
Kas yra paslaugų failas
Prieš eidami toliau, supraskime, kas yra sistemos paslaugos failas ir kaip jis sukuriamas Linux sistemoje.
„Systemd“ paslaugos faile yra instrukcijos, nustatytos „systemd“ paslaugai valdyti. Paprastai jį sudaro trys skyriai:
- Vienetas
- Aptarnavimas
- Diegti
The Vienetas skyriuje yra pagrindinė informacija apie paslaugą, pvz., trumpas aprašymas, dokumentacijos puslapiai ir priklausomybių kelias. The Diegti skyrius yra neprivalomas, tačiau paprastai jis valdo, kokioje sistemos būsenoje paslauga turėtų būti įjungta.
The Aptarnavimas skyrius paprastai yra tarp įrenginio ir diegimo skyrių. Jame pirmiausia yra paslaugos tipas ir vykdomųjų failų kelias, kurie iš esmės yra komandos, kurias reikia vykdyti, kai sistema iškviečia paslaugą.
Štai kaip atrodo tipinė paslaugų failų struktūra.
[ Vienetas ]
direktyva1 =instrukcija
direktyva2 =instrukcija
…
[ Aptarnavimas ]
direktyva1 =instrukcija
direktyva2 =instrukcija
…
[ Diegti ]
direktyva1 =instrukcija
direktyva2 =instrukcija
…
Čia direktyvos yra parametrai, kurie priima atitinkamą įvestį. Pavyzdžiui, apibūdinimas direktyva paima paslaugos pavadinimo eilutę. Panašiu būdu, ExecStart atsižvelgiama į visą vykdomojo failo kelią.
Įprastas paslaugų failas ssh.service pateikta žemiau.
Kaip sukurti paslaugų failą
Norint sukurti sisteminę paslaugą, būtina suprasti pagrindines direktyvas. Šiame vadove apžvelgsiu pagrindines direktyvas, kurios gali padėti sukurti visiškai funkcionalų paslaugų failą.
Paslaugos failo kūrimas apima kelis veiksmus, pradėkime nuo scenarijaus failo kūrimo.
Pastaba: Norėdami tęsti toliau nurodytą metodą, turite turėti root teises.
1. Scenarijaus kūrimas
Pradinis žingsnis apima kodo, kuris bus vykdomas, kai paslauga pradės veikti, sukūrimą. Šiam vadovui aš kuriu bash scenarijų, kuris išsaugos Linux sistemos veikimo laiką ir atminties naudojimą.
Dabartiniame kataloge sukurkime scenarijų pavadinimu myscript.sh naudojant nano redaktorių.
sudo nano myscript.shDabar į failą pridėkite toliau pateiktą scenarijų ir išsaugokite jį paspausdami ctrl+x ir tada ir .
#!/bin/bashaidas '>>Štai jūsų sistemos veikimo laikas<<' > namai / pats / mano failas.txt
veikimo laikas >> namai / pats / mano failas.txt
aidas '>>Čia yra jūsų sistemos atminties naudojimas<<' >> / namai / pats / mano failas.txt
Laisvas -m >> namai / pats / mano failas.txt
miegoti 60
Scenarijuje yra pora aido eilučių ir veikimo laikas ir Laisvas komandas.
The veikimo laikas „Linux“ komanda naudojama norint atspausdinti, kiek laiko sistema veikė ir kiek vartotojų yra prisijungę su vidutine sistemos apkrova per pastarąsias 1, 5 ir 15 minučių.
The Laisvas komanda naudojama sistemos atminties naudojimui spausdinti, o -m vėliavėlė naudojama išvesties spausdinimui MBs .
Norėdami išsaugoti informaciją tekstiniame faile, naudojame specialius operatorius, vadinamus peradresavimo operatoriais. The > operatorius naudojamas tekstui įterpti į minėtą tekstinį failą. Tačiau jei failo dar nėra, jis bus sukurtas. Kol >> operatorius naudojamas tekstui į failą pridėti. The miegoti komanda naudojama palaikyti paslaugos veiklą mažiausiai vieną minutę.
Dabar padarykite scenarijų vykdytiną suteikdami reikiamus leidimus.
sudo chmod +x myscript.shDabar scenarijus turi vykdymo leidimą, pereikime prie kito skyriaus.
Pastaba: Kad paslaugos faile nebūtų klaidų, naudokite absoliutų failo kelią bash scenarijuje.
2. .service failo sukūrimas
Tada sukurkite paslaugos failą naudodami .paslauga pratęsimas. Paslaugos failas turi būti sukurtas /etc/systemd/system katalogas. Pirmiausia eikite į šį katalogą naudodami cd komandą.
cd / ir tt / sisteminis / sistemaPaslaugos failą galite sukurti bet kuriame kataloge ir vėliau perkelti jį į šį katalogą.
Kuriu paslaugos failą su mano paslauga.paslauga vardas.
sudo nano mano paslauga.paslaugaDabar į failą pridėkite šias eilutes.
[ Vienetas ]apibūdinimas =Mano paslauga
[ Aptarnavimas ]
Tipas = paprasta
ExecStart = / šiukšliadėžė / bash / namai / pats / scenarijus.sh
Perkrauti =gedimo atveju
[ Diegti ]
WantedBy =multi-user.target
Prisimink tai [Padalinys], [Paslauga], ir [Diegti] yra didžiosios ir mažosios raidės . Paslaugos failas neveiks, jei kuris nors iš jų bus paminėtas neteisingai, pvz., [UNIT] arba [SERVICE].
Paslaugos pavadinimas nurodytas kaip Mano paslauga viduje apibūdinimas direktyva [Vieta] skyrius.
The Tipas paslaugos yra paprastas viduje [Paslauga] skyrių, kuris yra numatytasis tipas. Šakės , vienas šūvis , pranešti , dbus , ir tuščiąja eiga yra keletas kitų tipų.
Jei norite, kad paslauga būtų pritaikyta vartotojui, tada Vartotojas direktyva taip pat gali būti naudojama su vartotojo vartotojo vardu. Naudojant šią direktyvą paslaugos vartotojo leidimas taps priklausomas.
Kol ExecStart direktyvoje yra visas vykdomojo failo kelias. Aukščiau pateiktame pavyzdyje scenarijaus failas myscript.sh yra saugomas /home/sam/ katalogas. Ši direktyva iš tikrųjų valdo, ką vykdyti, kai sistema iškviečia paslaugą. Jei nenurodytas visas komandos kelias, ji bus automatiškai išspręsta, kad būtų pataisyti absoliutūs keliai, pvz /usr/local/bin , /usr/bin/, ir /bin . Visiškai gerai naudoti vykdomąjį pavadinimą tol, kol jie yra standartiniuose komandų kataloguose, tačiau kitu atveju nurodykite absoliutų kelią. Atminkite, kad taip pat gali būti naudojamos kelios komandos, kurios yra atskirtos kabliataškiu (;).
The [Diegti] skyrius yra neprivalomas; tačiau tai rodo, kaip paslauga įjungta. The WantedBy direktyva priima vykdymo lygio tikslinius failus kaip parametrus. Įvairūs tiksliniai failai nurodė skirtingus sistemos paleidimo lygius, pvz išjungti , gelbėti , kelių vartotojų , grafinis , ir paleisti iš naujo .
The kelių vartotojų.taikinys reiškia, kad paslauga bus įjungta, kai sistema bus tokioje būsenoje, leidžianti kelių vartotojų negrafines sesijas.
3. Paslaugos aktyvinimas
Norėdami suaktyvinti paslaugą, pirmiausia iš naujo įkelkite sistemos konfigūracijas naudodami systemctl naudingumas.
sudo systemctl demon-reloadTada vėl suaktyvinkite paslaugą naudodami systemctl komandą su įjungti .
sudo systemctl įjungti mano paslauga.paslaugaNorėdami patikrinti, patikrinkite paslaugos būseną naudodami systemctl būsena komandą.
Paslauga sėkmingai veikia.
Dabar skaitykime tekstinį failą mano failas.txt sukurta paslauga /namai katalogas.
Kaip sukurti „Systemd Service“ failą įprastam vartotojui
Paslaugos failo kūrimo įprastam vartotojui procedūra yra panaši į administratoriaus atliekamą paslaugos failo kūrimo būdą. Tačiau įprastų vartotojų paslaugų failo išsaugojimo katalogas skiriasi. Įprasti vartotojai turi įdėti savo paslaugų failus į ~/.config/systemd/user . Šis katalogas turi būti sukurtas naudojant mkdir komandą.
mkdir ~ / .config / sisteminis / VartotojasNorėdami suaktyvinti paslaugą įprastas vartotojas -Vartotojas komanda įterpiama su systemctl vietoj sudo .
systemctl --Vartotojas demonas-perkrautisystemctl --Vartotojas įjungti SERVICE-NAME.service
systemctl --Vartotojas būsena SERVICE-NAME.service
The -Vartotojas parinktis naudojama tvarkyti vartotojo sistemos paslaugų failus.
Kaip pašalinti paslaugų failą
Norėdami pašalinti paslaugos failą, pirmiausia turite sustabdyti paslaugą.
sudo systemctl sustabdyti SERVICE-NAME.servicePatikrinkite būseną naudodami systemctl būsena komanda, kad sužinotų, ar paslauga sustabdyta, ar ne. Tada pašalinkite paslaugos failą naudodami rm komandą.
sudo rm / ir tt / sisteminis / sistema / SERVICE-NAME.serviceDabar iš naujo įkelkite sisteminis konfigūracija.
sudo systemctl demon-reloadIšvada
Pasirinktinė systemd paslauga yra naudinga įvairiais atvejais. Šiame vadove sužinojome, kaip sistemos administratoriui sukurti tinkintą sistemos paslaugos failą ir kaip įprasti vartotojai gali sukurti paslaugos failą. Be to, mes taip pat matome paslaugų failo pašalinimo procedūrą.