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živatelThe -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/bashzatí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-reloadTí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.