Kuidas luua ja hallata kasutajateenuseid Linuxis

Kuidas Luua Ja Hallata Kasutajateenuseid Linuxis



Tavaline Linuxi kasutaja saab luua kohandatud süsteemiteenuse. Kuigi systemd-teenuseid haldavad suures osas süsteemiadministraatorid, kasutades käsku systemctl. Sama käsku saab kasutada ka kasutajaspetsiifiliste teenuste haldamiseks; kõik, mida vajate, on a – kasutaja lipp.

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 / kasutaja

The -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/bash

samal 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-reload

See 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.