Jak vytvořit soubor služby v Linuxu

Jak Vytvorit Soubor Sluzby V Linuxu



Systém systemd init je nyní součástí téměř všech distribucí Linuxu. Jako správce nebo vývojář vytváříte služby, které může systemd spravovat. Pokud například chcete spouštět služby při spouštění nebo je chcete ručně ovládat, lze to provést prostřednictvím souboru vlastní služby.

V tomto tutoriálu projdu, jak vytvořit soubor služby systemd v systému Linux.







Co je soubor služeb

Než půjdeme dále, pojďme pochopit, co je soubor služby systemd a jak se vytváří v systému Linux.



Soubor služby systemd obsahuje instrukce nastavené pro systemd pro správu služby. Obvykle obsahuje tři části:



  • Jednotka
  • Servis
  • Nainstalujte

The Jednotka sekce obsahuje základní informace o službě, jako je krátký popis, stránky dokumentace a cesta k závislostem. The Nainstalujte sekce je volitelná, ale obvykle řídí, v jakém stavu systému by měla být služba povolena.





The Servis sekce je normálně vložena mezi jednotku a sekci instalace. Primárně obsahuje typ služby a cestu ke spustitelným souborům, což jsou v podstatě příkazy, které se mají provést při vyvolání služby systemd.

Takto vypadá typická struktura servisního souboru.



[ Jednotka ]

Směrnice1 = návod

Směrnice2 = návod



[ Servis ]

Směrnice1 = návod

Směrnice2 = návod



[ Nainstalujte ]

Směrnice1 = návod

Směrnice2 = návod

Zde jsou direktivy parametry, které přebírají svůj příslušný vstup. Například, Popis direktiva přebírá řetězec názvu služby. podobným způsobem, ExecStart bere v úvahu úplnou cestu ke spustitelnému souboru.

Typický servisní soubor ssh.service je uveden níže.

Jak vytvořit soubor služby

Pro vytvoření služby systemd je nutné porozumět klíčovým direktivám. V této příručce se budu zabývat základními směrnicemi, které vám mohou pomoci vytvořit plně funkční soubor služeb.

Vytvoření souboru služby zahrnuje několik kroků, začněme vytvořením souboru skriptu.

Poznámka: Chcete-li pokračovat v níže uvedené metodě, musíte mít oprávnění root.

1. Vytvoření skriptu

Počáteční krok zahrnuje vytvoření kódu, který bude spuštěn, když služba zahájí svou činnost. Pro tento tutoriál vytvářím bash skript, který bude ukládat dobu provozu systému Linux a využití paměti.

Vytvořme skript v aktuálním adresáři s názvem myscript.sh pomocí nano editoru.

sudo nano myscript.sh

Nyní přidejte níže uvedený skript do souboru a uložte jej stisknutím ctrl+x a pak a .

#!/bin/bash

echo '>>Zde je doba provozuschopnosti vašeho systému<<' > Domov / sám / myfile.txt

doba provozuschopnosti >> Domov / sám / myfile.txt

echo '>>Zde je využití paměti vašeho systému<<' >> / Domov / sám / myfile.txt

volný, uvolnit -m >> Domov / sám / myfile.txt

spát 60

Skript obsahuje několik řetězců echo a doba provozuschopnosti a volný, uvolnit příkazy.

The doba provozuschopnosti příkaz v Linuxu se používá k vytištění, jak dlouho systém běží a kolik uživatelů je připojeno s průměrným zatížením systému za posledních 1, 5 a 15 minut.

The volný, uvolnit příkaz se používá k tisku využití paměti systému, zatímco příkaz -m příznak se používá k tisku výstupu MB .

Pro uložení informací do textového souboru používáme speciální operátory zvané operátory přesměrování. The > operátor slouží k vložení textu do zmíněného textového souboru. Pokud však soubor ještě neexistuje, bude vytvořen. Zatímco >> operátor se používá k připojení textu v souboru. The spát příkaz se používá k udržení aktivity služby po dobu minimálně jedné minuty.

Nyní vytvořte spustitelný skript udělením potřebných oprávnění.

sudo chmod +x myscript.sh

Skript má nyní oprávnění ke spuštění, pojďme k další části.

Poznámka: Aby byl soubor služby bezchybný, použijte ve skriptu bash absolutní cestu k souboru.

2. Vytvoření souboru .service

Dále vytvořte soubor služby s .servis rozšíření. Soubor služby musí být vytvořen v /etc/systemd/system adresář. Nejprve přejděte do tohoto adresáře pomocí CD příkaz.

CD / atd / systemd / Systém

Soubor služby můžete vytvořit v libovolném adresáři a později tento soubor přesunout do tohoto adresáře.

Vytvářím servisní soubor s myservice.service název.

sudo nano myservice.service

Nyní do souboru přidejte následující řádky.

[ Jednotka ]

Popis = Moje služba

[ Servis ]

Typ = jednoduché

ExecStart = / zásobník / bash / Domov / sám / skript.sh

Restartujte = při selhání

[ Nainstalujte ]

WantedBy =multi-user.target

Všimněte si, že [Jednotka], [Služba], a [Nainstalujte] jsou citlivý na velká písmena . Servisní soubor nebude fungovat, pokud je některý z nich uveden nesprávně, například [UNIT] nebo [SERVICE].

Název služby je zadán jako Moje služba v Popis směrnice o [Jednotka] sekce.

The Typ služby je jednoduchý v [Servis] sekce, což je výchozí typ. Rozvětvení , jeden výstřel , oznámit , dbus , a nečinný jsou některé z dalších typů.

Pokud chcete, aby byla služba specifická pro uživatele, pak Uživatel direktivu lze také použít s uživatelským jménem uživatele. Použitím této direktivy bude uživatelská oprávnění služby závislá.

Zatímco ExecStart obsahuje úplnou cestu ke spustitelnému souboru. Ve výše uvedeném příkladu soubor skriptu myscript.sh je uložen v /domů/sam/ adresář. Tato direktiva ve skutečnosti řídí, co se má provést, když je služba vyvolána systémem systemd. Pokud není zadána úplná cesta příkazu, bude automaticky vyřešena tak, že se opraví absolutní cesty, jako např /usr/local/bin , /usr/bin/, a /zásobník . Je naprosto v pořádku používat název spustitelného souboru, pokud jsou ve standardních adresářích příkazů, ale jinak uveďte absolutní cestu. Všimněte si, že lze použít i více příkazů oddělených středníkem (;).

The [Nainstalujte] sekce je volitelná; však označuje, jak je služba povolena. The WantedBy direktiva bere cílové soubory na úrovni běhu jako parametry. Různé cílové soubory indikovaly různé úrovně běhu systému, jako např vypnout , zachránit , Multi uživatel , grafický , a restartovat .

The víceuživatelský.cíl znamená, že služba bude povolena, když je systém ve stavu umožňujícím víceuživatelské negrafické relace.

3. Aktivace Služby

Chcete-li službu aktivovat, nejprve znovu načtěte konfiguraci systemd pomocí systemctl utility.

sudo systemctl daemon-reload

Poté službu znovu aktivujte pomocí systemctl příkaz s umožnit .

sudo systemctl umožnit myservice.service

Pro ověření zkontrolujte stav služby pomocí stav systemctl příkaz.

Služba je úspěšně spuštěna.

Nyní si přečteme textový soubor myfile.txt služba vytvořená v /Domov adresář.

Jak vytvořit soubor služby Systemd pro běžného uživatele

Postup vytvoření servisního souboru pro běžného uživatele je podobný způsobu vytvoření servisního souboru administrátorem. Adresář pro uložení souboru služby pro běžné uživatele se však liší. Normální uživatelé musí umístit své soubory služeb do ~/.config/systemd/user . Tento adresář musí být vytvořen pomocí mkdir příkaz.

mkdir ~ / .config / systemd / uživatel

Pro aktivaci služby běžným uživatelem -uživatel příkaz je vložen s systemctl namísto sudo .

systemctl --uživatel daemon-reload

systemctl --uživatel umožnit SERVICE-NAME.service

systemctl --uživatel stav SERVICE-NAME.service

The -uživatel volba se používá ke správě uživatelských servisních souborů systemd.

Jak odstranit soubor služby

Chcete-li odstranit soubor služby, nejprve je třeba službu zastavit.

sudo systemctl stop SERVICE-NAME.service

Zkontrolujte stav pomocí stav systemctl příkaz, abyste věděli, zda je služba zastavena nebo ne. Poté soubor služby odstraňte pomocí rm příkaz.

sudo rm / atd / systemd / Systém / SERVICE-NAME.service

Nyní znovu načtěte systemd konfigurace.

sudo systemctl daemon-reload

Závěr

Služba custom systemd je výhodná v různých scénářích. V této příručce jsme se naučili, jak vytvořit vlastní soubor služby systemd pro správce systému a jak mohou běžní uživatelé vytvořit soubor služby. Dále také vidíme postup odstranění souboru služby.