Selles juhendis käsitlen seda, kuidas luua Linuxis kasutajaspetsiifilist teenust ja kuidas seda systemctl abil hallata.
Tavalise kasutajateeninduse põhjus
Tavaline kasutajateenus erineb süsteemiteenusest. Tavakasutaja teenus on sisselogitud kasutajakeskne. See teenus töötab ainult selle kasutaja seansil, kes selle lõi.
Kuidas luua tavalist kasutajateenust
Kasutajaspetsiifilised teenused Linuxis on paigutatud ~/.config/systemd/user kataloog. Kui seda kataloogi pole, saab selle luua.
mkdir -lk ~ / .config / süsteemne / kasutajaThe -lk lippu kasutatakse vajadusel ülemkataloogi loomiseks. The ~ tähistab kohaliku kasutaja kodukataloogi ja on samaväärne /kodu/kasutaja samas kui punkt enne konfiguratsioonifaili muudab selle peidetuks. Loome lihtsa bash-skriptifaili, mis kirjutab mälukasutuse teksti iga 30 minuti järel. Loon skripti nimega script.sh .
#! /bin/bashsamal ajal tõsi
teha
tasuta -m >> / Kodu / kasutaja / minu fail.txt
magama 1800
tehtud
Selle skripti saab luua kõikjal, kuid veenduge, et skriptis määratud tee on absoluutne tee.
Nüüd loome teenuse, mis käivitab ülaltoodud skripti taustal. Käivitage mis tahes tekstiredaktor, näiteks Nano või Vim, ja kleepige sellesse allpool toodud read.
[ Üksus ]Kirjeldus =Minu teenus
[ Teenindus ]
Tüüp =lihtne
ExecStart = / prügikast / bash / Kodu / kasutaja / script.sh
Taaskäivita =tõrke korral
[ Installige ]
WantedBy =default.target
Jaotises [Unit] kuvatakse Kirjeldus käsk sisaldab lihtsalt teenuse nime. Pange tähele, et see ei tohiks olla pikem kui 80 tähemärki.
Jaotis [Teenus] sisaldab kolme olulist direktiivi. Esiteks, Tüüp ; mis on lihtne , siis ExecStart mis sisaldab meie kohandatud skripti käivitatavat faili. Teenus taaskäivitub ainult tõrke korral.
Jaotis [Install] sisaldab WantedBy direktiiv, mis on default.target , mis tähendab, et teenus lubatakse süsteemi olekus, kui see saavutatakse vaikekäitustasemel, mis tavaliselt on multi-user.target või graphical.target.
Nüüd salvestage fail kausta ~/.config/systemd/user mis tahes nimega kataloog; ma panen sellele nime minuteenus.teenus .
Kuidas hallata tavalist kasutajateenust
Tavalise kasutajateenuse haldamiseks kasutatakse süsteemiga käsku systemctl – kasutaja lipp. The – kasutaja lipp tähendab, et kasutaja võtab ühendust teenusehalduriga, mitte süsteemiga.
Pärast kasutajaspetsiifilise teenusefaili loomist on esimene oluline samm süsteemi konfiguratsioonifailide uuesti laadimine.
systemctl --kasutaja deemon-reloadSee rakendab muudatused.
Et teada saada, kas teenus töötab või mitte, kasutage koos süsteemiga systemctl – kasutaja lipp ja valik.
systemctl --kasutaja olek [ teenuse_nimi ]
Muud tavalise kasutajateenuse haldamise käsud on loetletud allpool:
systemctl --kasutaja alustada [ teenuse_nimi ]systemctl --kasutaja lubada [ teenuse_nimi ]
systemctl --kasutaja peatus [ teenuse_nimi ]
systemctl --kasutaja keelata [ teenuse_nimi ]
systemctl --kasutaja Taaskäivita [ teenuse_nimi ]
Kuidas luua tavalist kasutajateenust süsteemiadministraatori õigustega
Kasutaja loob palju teenuseid, kuid nende käitamiseks on vaja administraatori luba. Selliseid teenuseid saab luua, lisades a Kasutaja käsk jaotisesse [Teenus].
The Kasutaja direktiivi saab kasutada selle kasutaja nime mainimiseks, kelle õigusi on teenuse käitamiseks vaja, näiteks admin . Seega, kui tavaline kasutaja soovib luua teenust, mis nõuab administraatori õigusi, lisage lihtsalt User=admin jaotises [Teenus] teeb selle töö ära. See teenus jääb aga aktiivseks seni, kuni administraator on aktiivne. Pange tähele, et administraator ei saa seda teenust otse juhtida.
Järeldus
Tavakasutaja saab luua ka süsteemiteenuse, kuid see tuleb sisestada ~/.config/systemd/user kataloog. See teenus töötab seni, kuni selle loonud kasutaja on sisse logitud. Neid teenuseid hallatakse samuti käsu systemctl kaudu, kuid – kasutaja lipp. Mis annab süsteemile teada, et teenusele helistab kasutaja, mitte süsteem. Selles juhendis lõin kohandatud tavalise kasutajateenuse ja mainisin selle haldamiseks käske systemctl. Lisaks tõin esile ka meetodi administraatoriõigusi nõudva teenuse loomiseks.