Sådan oprettes og administreres brugertjenester på Linux

Sadan Oprettes Og Administreres Brugertjenester Pa Linux



En normal bruger af Linux kan oprette en brugerdefineret systemd service. Mens systemd-tjenester stort set administreres af systemadministratorer, der bruger systemctl-kommandoen. Den samme kommando kan også bruges til at administrere brugerspecifikke tjenester; alt hvad du behøver er en -bruger flag.

I denne guide vil jeg dække, hvordan man opretter en brugerspecifik tjeneste på Linux, og hvordan man administrerer den ved hjælp af systemctl.

Grund til at have en normal brugerservice

Den normale brugertjeneste er forskellig fra systemtjenesten. Den normale brugerservice er logget ind brugercentreret. Denne tjeneste vil kun fungere i sessionen for den bruger, der oprettede den.







Sådan opretter du en normal brugerservice

De brugerspecifikke tjenester på Linux er placeret i ~/.config/systemd/bruger vejviser. Hvis denne mappe ikke er til stede, kan den oprettes.

mkdir -s ~ / .config / systemd / bruger

Det -s flag bruges til at oprette en overordnet mappe, hvis det kræves. Det ~ angiver den lokale brugers hjemmemappe og svarer til /hjem/bruger mens prikken før konfigurationsfilen gør den skjult. Lad os oprette en simpel bash script-fil, der vil skrive hukommelsesforbruget til en tekst hvert 30. minut. Jeg laver scriptet med navnet på script.sh .

#! /bin/bash

mens rigtigt

gør

gratis -m >> / hjem / bruger / minfil.txt

søvn 1800

Færdig

Dette script kan oprettes hvor som helst, men sørg for, at stien angivet inde i scriptet er en absolut sti.

Lad os nu oprette en tjeneste, der udfører ovenstående script i baggrunden. Start en hvilken som helst teksteditor, såsom Nano eller Vim, og indsæt linjerne nedenfor i den.

[ Enhed ]

Beskrivelse =Min tjeneste

[ Service ]

Type = enkel

ExecStart = / beholder / bash / hjem / bruger / script.sh

Genstart =ved fiasko

[ Installere ]

Efterlyst Af =default.target

I sektionen [Enhed] er Beskrivelse direktivet indeholder blot navnet på tjenesten. Bemærk, at det ikke bør være mere end 80 tegn.

Afsnittet [Service] indeholder de tre vigtige direktiver. For det første Type ; som er enkel , derefter ExecStart indeholdende den eksekverbare af vores brugerdefinerede script. Tjenesten genstarter kun, når der er en fejl.

Sektionen [Installer] indeholder Efterlyst Af direktiv som er default.target , hvilket antyder, at tjenesten vil blive aktiveret i systemtilstanden, når den nås på standardkørselsniveauet, som normalt er multi-user.target eller graphical.target.

Gem nu filen i ~/.config/systemd/bruger mappe med et hvilket som helst navn; Jeg navngiver den minservice.service .

Sådan administreres en normal brugerservice

For at administrere den normale brugertjeneste bruges systemctl-kommandoen med -bruger flag. Det -bruger flag angiver, at brugeren kontakter serviceadministratoren i stedet for systemet.

Efter at have oprettet den brugerspecifikke servicefil, er det første afgørende trin at genindlæse systemd-konfigurationsfilerne.

systemctl --bruger dæmon-genindlæs

Dette vil anvende ændringerne.

For at vide, om tjenesten kører eller ej, skal du bruge systemctl med -bruger flag og mulighed.

systemctl --bruger status [ tjeneste_navn ]

Andre kommandoer til at administrere den normale brugertjeneste er nævnt nedenfor:

systemctl --bruger Start [ tjeneste_navn ]

systemctl --bruger aktivere [ tjeneste_navn ]

systemctl --bruger hold op [ tjeneste_navn ]

systemctl --bruger deaktivere [ tjeneste_navn ]

systemctl --bruger genstart [ tjeneste_navn ]

Sådan opretter du en normal brugertjeneste med systemadministratortilladelser

Der er mange tjenester, som en bruger opretter, men de kræver administratortilladelse for at køre. Sådanne tjenester kan oprettes ved at tilføje en Bruger direktiv til afsnittet [Service].

Det Bruger direktiv kan bruges til at nævne navnet på den bruger, hvis tilladelser er nødvendige for at køre tjenesten, som f.eks admin . Så hvis en normal bruger ønsker at oprette en tjeneste, der kræver administratortilladelser, skal du blot tilføje Bruger=admin i [Service] sektionen vil gøre jobbet. Denne tjeneste vil dog forblive aktiv, så længe administratoren er aktiv. Bemærk, at denne tjeneste ikke direkte kan kontrolleres af administratoren.

Konklusion

Den normale bruger kan også oprette en systemd service, men den skal placeres i ~/.config/systemd/bruger vejviser. Denne tjeneste kører, så længe brugeren, der oprettede den, er logget ind. Disse tjenester administreres også via systemctl-kommandoen, men med -bruger flag. Hvilket fortæller systemd, at tjenesten bliver kaldt af brugeren, ikke systemet. I denne vejledning oprettede jeg en brugerdefineret normal brugertjeneste og nævnte systemctl-kommandoer til at administrere den. Desuden fremhævede jeg også en metode til at skabe en tjeneste, der kræver administrative rettigheder.