Cum să creați și să gestionați serviciile utilizatorului pe Linux

Cum Sa Creati Si Sa Gestionati Serviciile Utilizatorului Pe Linux



Un utilizator normal de Linux poate crea un serviciu systemd personalizat. În timp ce serviciile systemd sunt în mare măsură gestionate de administratorii de sistem folosind comanda systemctl. Aceeași comandă poate fi folosită și pentru a gestiona serviciile specifice utilizatorului; tot ce ai nevoie este a -utilizator steag.

În acest ghid, voi aborda cum să creați un serviciu specific utilizatorului pe Linux și cum să-l gestionați folosind systemctl.

Motivul pentru care aveți un serviciu normal de utilizare

Serviciul de utilizator normal este diferit de serviciul de sistem. Serviciul de utilizator normal este conectat centrat pe utilizator. Acest serviciu va funcționa numai în sesiunea utilizatorului care l-a creat.







Cum se creează un serviciu normal pentru utilizatori

Serviciile specifice utilizatorului pe Linux sunt plasate în ~/.config/systemd/user director. Dacă acest director nu este prezent, atunci poate fi creat.

mkdir -p ~ / .config / systemd / utilizator

The -p flag este folosit pentru a crea un director părinte, dacă este necesar. The ~ indică directorul principal al utilizatorului local și este echivalent cu /acasă/utilizator în timp ce punctul dinaintea fișierului de configurare îl face ascuns. Să creăm un simplu fișier script bash care va scrie utilizarea memoriei într-un text la fiecare 30 de minute. Eu creez scriptul cu numele de script.sh .

#! /bin/bash

in timp ce Adevărat

do

gratuit -m >> / Acasă / utilizator / myfile.txt

dormi 1800

Terminat

Acest script poate fi creat oriunde, dar asigurați-vă că calea specificată în interiorul scriptului este o cale absolută.

Acum, să creăm un serviciu care va executa scriptul de mai sus în fundal. Lansați orice editor de text, cum ar fi Nano sau Vim, și lipiți în el liniile de mai jos.

[ Unitate ]

Descriere =Serviciul meu

[ Serviciu ]

Tip =simplu

ExecStart = / cos / bash / Acasă / utilizator / script.sh

Repornire =la eșec

[ Instalare ]

WantedBy =default.target

În secțiunea [Unitate], Descriere directiva conține pur și simplu numele serviciului. Rețineți că nu trebuie să aibă mai mult de 80 de caractere.

Secțiunea [Servicii] conține cele trei directive importante. În primul rând, Tip ; care este simplu , apoi ExecStart care conține executabilul scriptului nostru personalizat. Serviciul va reporni numai atunci când există o eroare.

Secțiunea [Instalare] conține WantedBy directivă care este implicit.ţintă , ceea ce implică faptul că serviciul va fi activat în starea sistemului atunci când este atins la nivelul de rulare implicit, care este în mod normal multi-user.target sau graphical.target.

Acum, salvați fișierul în ~/.config/systemd/user director cu orice nume; Îi dau nume serviciul meu.serviciu .

Cum să gestionați un serviciu normal de utilizare

Pentru a gestiona serviciul utilizator normal, comanda systemctl este utilizată împreună cu -utilizator steag. The -utilizator flag înseamnă că utilizatorul contactează managerul de servicii, mai degrabă decât sistemul.

După crearea fișierului de serviciu specific utilizatorului, primul pas crucial este reîncărcarea fișierelor de configurare systemd.

systemctl --utilizator daemon-reload

Aceasta va aplica modificările.

Pentru a ști dacă serviciul rulează sau nu, utilizați systemctl, cu -utilizator steag și opțiune.

systemctl --utilizator stare [ numele serviciului ]

Alte comenzi pentru a gestiona serviciul utilizator normal sunt menționate mai jos:

systemctl --utilizator start [ numele serviciului ]

systemctl --utilizator permite [ numele serviciului ]

systemctl --utilizator Stop [ numele serviciului ]

systemctl --utilizator dezactivați [ numele serviciului ]

systemctl --utilizator repornire [ numele serviciului ]

Cum să creați un serviciu normal de utilizator cu permisiuni de administrator de sistem

Există multe servicii pe care un utilizator le creează, dar acestea necesită permisiunea de administrator pentru a rula. Astfel de servicii pot fi create prin adăugarea unui Utilizator directivă către secțiunea [Service].

The Utilizator directiva poate fi folosită pentru a menționa numele utilizatorului ale cărui permisiuni sunt necesare pentru a rula serviciul, cum ar fi admin . Deci, dacă un utilizator normal dorește să creeze un serviciu care necesită permisiuni de administrator, atunci pur și simplu adăugați Utilizator=admin în secțiunea [Service] va face treaba. Cu toate acestea, acest serviciu va rămâne activ atâta timp cât administratorul este activ. Rețineți că acest serviciu nu poate fi controlat direct de către administrator.

Concluzie

Utilizatorul obișnuit poate crea, de asemenea, un serviciu systemd, dar acesta trebuie să fie introdus ~/.config/systemd/user director. Acest serviciu rulează atâta timp cât utilizatorul care l-a creat este conectat. Aceste servicii sunt, de asemenea, gestionate prin comanda systemctl, dar cu -utilizator steag. Care îi spune systemd că serviciul este apelat de utilizator, nu de sistem. În acest ghid, am creat un serviciu de utilizator normal personalizat și am menționat comenzi systemctl pentru a-l gestiona. Mai mult, am evidențiat și o metodă de a crea un serviciu care necesită privilegii administrative.