V tejto príručke sa budem zaoberať tým, ako vytvoriť službu špecifickú pre používateľa v systéme Linux a ako ju spravovať pomocou systemctl.
Dôvod pre službu bežného používateľa
Bežná používateľská služba sa líši od systémovej služby. Služba bežného používateľa je zameraná na prihláseného používateľa. Táto služba bude fungovať iba v relácii používateľa, ktorý ju vytvoril.
Ako vytvoriť službu pre bežného používateľa
Služby špecifické pre používateľa v systéme Linux sú umiestnené v ~/.config/systemd/user adresár. Ak tento adresár neexistuje, môžete ho vytvoriť.
mkdir -p ~ / .config / systemd / užívateľThe -p príznak sa v prípade potreby používa na vytvorenie nadradeného adresára. The ~ označuje domovský adresár miestneho používateľa a je ekvivalentný /home/user kým bodka pred konfiguračným súborom ho skryje. Vytvorme jednoduchý súbor bash skriptu, ktorý bude každých 30 minút zapisovať využitie pamäte do textu. Vytváram skript s názvom script.sh .
#! /bin/bashzatiaľ čo pravda
robiť
zadarmo -m >> / Domov / užívateľ / myfile.txt
spať 1800
hotový
Tento skript je možné vytvoriť kdekoľvek, ale uistite sa, že cesta zadaná v skripte je absolútna cesta.
Teraz vytvorte službu, ktorá spustí vyššie uvedený skript na pozadí. Spustite ľubovoľný textový editor, napríklad Nano alebo Vim, a vložte doň riadky uvedené nižšie.
[ Jednotka ]Popis = Moja služba
[ servis ]
Typ =jednoduché
ExecStart = / kôš / bash / Domov / užívateľ / script.sh
Reštart = pri poruche
[ Inštalácia ]
WantedBy =default.target
V sekcii [Jednotka] Popis obsahuje iba názov služby. Upozorňujeme, že by nemalo mať viac ako 80 znakov.
Časť [Služba] obsahuje tri dôležité smernice. Po prvé, Typ ; ktorý je jednoduché , potom ExecStart obsahujúci spustiteľný súbor nášho vlastného skriptu. Služba sa reštartuje iba v prípade zlyhania.
Časť [Inštalovať] obsahuje WantedBy smernica, ktorá je default.target , čo znamená, že služba bude povolená v stave systému, keď sa dosiahne na predvolenej úrovni spustenia, čo je normálne multi-user.target alebo graphical.target.
Teraz uložte súbor do ~/.config/systemd/user adresár s ľubovoľným názvom; ja to pomenúvam myservice.service .
Ako spravovať službu bežného používateľa
Na riadenie normálnej používateľskej služby sa príkaz systemctl používa s – užívateľ vlajka. The – užívateľ príznak znamená, že používateľ kontaktuje manažéra služieb a nie systém.
Po vytvorení súboru služieb špecifického pre používateľa je prvým zásadným krokom opätovné načítanie konfiguračných súborov systemd.
systemctl --užívateľ daemon-reloadTýmto sa použijú zmeny.
Ak chcete vedieť, či je služba spustená alebo nie, použite systemctl s príponou – užívateľ vlajka a možnosť.
systemctl --užívateľ postavenie [ názov_služby ]
Ďalšie príkazy na správu bežnej používateľskej služby sú uvedené nižšie:
systemctl --užívateľ začať [ názov_služby ]systemctl --užívateľ povoliť [ názov_služby ]
systemctl --užívateľ zastaviť [ názov_služby ]
systemctl --užívateľ zakázať [ názov_služby ]
systemctl --užívateľ reštart [ názov_služby ]
Ako vytvoriť službu bežného používateľa s povoleniami správcu systému
Existuje veľa služieb, ktoré používateľ vytvára, ale na spustenie vyžadujú povolenie správcu. Takéto služby je možné vytvoriť pridaním a Používateľ do sekcie [Služba].
The Používateľ direktívu možno použiť na uvedenie mena používateľa, ktorého oprávnenia sú potrebné na spustenie služby, ako napr admin . Ak teda chce bežný používateľ vytvoriť službu, ktorá vyžaduje povolenia správcu, stačí pridať Používateľ=admin v sekcii [Služba] vykoná túto úlohu. Táto služba však zostane aktívna, kým bude aktívny administrátor. Upozorňujeme, že túto službu nemôže priamo ovládať správca.
Záver
Bežný používateľ môže tiež vytvoriť službu systemd, ale musí byť umiestnená ~/.config/systemd/user adresár. Táto služba beží, pokiaľ je prihlásený používateľ, ktorý ju vytvoril. Tieto služby sa tiež spravujú pomocou príkazu systemctl, ale pomocou – užívateľ vlajka. Čo hovorí systemd, že službu volá používateľ, nie systém. V tejto príručke som vytvoril vlastnú službu pre bežného používateľa a spomenul som príkazy systemctl na jej správu. Okrem toho som tiež zdôraznil spôsob vytvorenia služby, ktorá vyžaduje oprávnenia správcu.