Jak vytvářet a spravovat uživatelské služby v systému Linux

Jak Vytvaret A Spravovat Uzivatelske Sluzby V Systemu Linux



Normální uživatel Linuxu si může vytvořit vlastní systemd službu. Zatímco služby systemd jsou z velké části spravovány správci systému pomocí příkazu systemctl. Stejný příkaz lze také použít ke správě služeb specifických pro uživatele; vše, co potřebujete, je a -uživatel vlajka.

V této příručce se budu zabývat tím, jak vytvořit službu specifickou pro uživatele v systému Linux a jak ji spravovat pomocí systemctl.

Důvod pro službu běžného uživatele

Normální uživatelská služba se liší od systémové služby. Normální uživatelská služba je zaměřena na přihlášeného uživatele. Tato služba bude fungovat pouze v relaci uživatele, který ji vytvořil.







Jak vytvořit službu pro běžného uživatele

Služby specifické pro uživatele v systému Linux jsou umístěny v ~/.config/systemd/user adresář. Pokud tento adresář není k dispozici, lze jej vytvořit.

mkdir -p ~ / .config / systemd / uživatel

The -p příznak se v případě potřeby používá k vytvoření nadřazeného adresáře. The ~ označuje domovský adresář místního uživatele a je ekvivalentní /home/user zatímco tečka před konfiguračním souborem jej skryje. Vytvořme jednoduchý soubor bash skriptu, který bude každých 30 minut zapisovat využití paměti do textu. Vytvářím skript s názvem skript.sh .

#! /bin/bash

zatímco skutečný

dělat

volný, uvolnit -m >> / Domov / uživatel / myfile.txt

spát 1800

Hotovo

Tento skript lze vytvořit kdekoli, ale zajistěte, aby cesta zadaná uvnitř skriptu byla absolutní cestou.

Nyní vytvoříme službu, která spustí výše uvedený skript na pozadí. Spusťte libovolný textový editor, například Nano nebo Vim, a vložte do něj řádky uvedené níže.

[ Jednotka ]

Popis = Moje služba

[ Servis ]

Typ = jednoduché

ExecStart = / zásobník / bash / Domov / uživatel / skript.sh

Restartujte = při selhání

[ Nainstalujte ]

WantedBy =default.target

V sekci [Jednotka], Popis direktiva jednoduše obsahuje název služby. Všimněte si, že by nemělo být více než 80 znaků.

Sekce [Service] obsahuje tři důležité směrnice. Za prvé, Typ ; který je jednoduchý , pak ExecStart obsahující spustitelný soubor našeho vlastního skriptu. Služba se restartuje pouze v případě selhání.

Sekce [Instalovat] obsahuje WantedBy směrnice, která je default.target , což znamená, že služba bude povolena ve stavu systému, když je dosaženo na výchozí úrovni spuštění, což je normálně multi-user.target nebo graphical.target.

Nyní uložte soubor do ~/.config/systemd/user adresář s libovolným názvem; já to pojmenovávám myservice.service .

Jak spravovat službu běžného uživatele

Ke správě běžné uživatelské služby se používá příkaz systemctl s -uživatel vlajka. The -uživatel příznak znamená, že uživatel kontaktuje správce služeb, nikoli systém.

Po vytvoření souboru služby specifického pro uživatele je prvním zásadním krokem opětovné načtení konfiguračních souborů systemd.

systemctl --uživatel daemon-reload

Tím se použijí změny.

Chcete-li zjistit, zda služba běží nebo ne, použijte systemctl s příponou -uživatel vlajka a možnost.

systemctl --uživatel postavení [ Název služby ]

Další příkazy pro správu běžné uživatelské služby jsou uvedeny níže:

systemctl --uživatel Start [ Název služby ]

systemctl --uživatel umožnit [ Název služby ]

systemctl --uživatel stop [ Název služby ]

systemctl --uživatel zakázat [ Název služby ]

systemctl --uživatel restartovat [ Název služby ]

Jak vytvořit službu normálního uživatele s oprávněními správce systému

Existuje mnoho služeb, které uživatel vytváří, ale ke spuštění vyžadují oprávnění správce. Takové služby lze vytvořit přidáním a Uživatel směrnici do sekce [Service].

The Uživatel direktivu lze použít k uvedení jména uživatele, jehož oprávnění jsou vyžadována ke spuštění služby, jako např admin . Pokud tedy chce běžný uživatel vytvořit službu, která vyžaduje oprávnění správce, jednoduše přidá Uživatel=admin v sekci [Služba] to udělá. Tato služba však zůstane aktivní, dokud bude aktivní správce. Upozorňujeme, že tuto službu nemůže přímo ovládat administrátor.

Závěr

Normální uživatel může také vytvořit službu systemd, ale musí být umístěna ~/.config/systemd/user adresář. Tato služba běží, dokud je přihlášen uživatel, který ji vytvořil. Tyto služby jsou také spravovány pomocí příkazu systemctl, ale pomocí -uživatel vlajka. Což říká systemd, že službu volá uživatel, nikoli systém. V této příručce jsem vytvořil vlastní běžnou uživatelskou službu a uvedl příkazy systemctl pro její správu. Kromě toho jsem také zdůraznil způsob vytvoření služby, která vyžaduje oprávnění správce.