Jak vytvořit nebo nakonfigurovat službu na serverech Linux pomocí Systemd

Systemd je sada démonů, nástrojů, knihoven a služeb navržených pro centrální správu a konfiguraci všech služeb na Linux operační systémy. Systemd nám umožňuje přímou interakci s jádrem operačního systému a dnes je tento démon přítomen ve velké většině distribucí založených na Linuxu, jako je Debian, ubuntu a mnoho dalších. Vzhledem k tomu, že má na starosti řízení systémových služeb, je nezbytné umět si službu sami vytvořit, spouštět a zastavovat, kdykoli chceme, něco zásadního pro správnou správu našeho operačního systému. Dnes v tomto článku vás naučíme, jak vytvořit vlastní služby na systémech Linux.

vytvořit nebo nakonfigurovat službu na serverech Linux pomocí Systemd

V dnešní době velká většina aplikací závisí na Systemd, aby vytvořil své vlastní démony nebo také známé jako „démon“ nebo jednoduše služby v systému. Když nainstalujeme nový program, pokud musí být spuštěn při startu operačního systému, bude přímo obsahovat soubor speciálně navržený tak, aby jej systemd rozpoznal a spustil při každém spuštění operačního systému, je však velmi Je možné, že ne všechny Aplikace obsahují tuto funkcionalitu, a pokud chceme, aby se spouštěly s operačním systémem, musíme si sami vytvořit konkrétní konfiguraci, aby se spouštěla ​​automaticky a byla neustále v systému.

V následujícím příkladu, který vám ukážeme, vytvoříme službu pro aktualizační engine Tiny Tiny RSS, i když po několika mírných úpravách, které naznačíme později, ji budeme moci použít k provádění jakýchkoli skript, příkaz nebo službu, kterou potřebujeme spouštět na pozadí v našem operačním systému s Systemd.

Jednou ze silných stránek Systemd je, že funguje úplně stejně na všech operačních systémech založených na Linuxu, nezáleží na tom, jestli používáte Debian, Ubuntu nebo jakoukoli jinou distribuci, je to úplně stejné na všech a stejná konfigurace soubor vám poslouží.

Vytvořte si vlastní službu nebo démona

První věc, kterou musíme udělat, je zadat cestu, kde se nacházejí všechny služby Systemd, v našem případě vám uvedeme příklady pomocí Debianu, ale cesta v různých operačních systémech je úplně stejná, neměla by tam být žádná rozdíl.

Cesta, kam musíme jít, abychom viděli každou ze služeb, je „/etc/systemd/system/“, takže pokud použijeme příkaz „cd“, budeme moci přejít na tuto cestu bez problémů:

cd /etc/systemd/system/

Pokud provedeme „ls“ pro výpis všech služeb, budeme moci vidět všechny, které jsou ve výchozím nastavení vytvořeny. V závislosti na programech, které jste nainstalovali, budeme mít některé služby nebo jiné.

Jakmile jsme na správné cestě, budeme nyní muset vytvořit soubor, který končí na „service“, jak můžete vidět na předchozím snímku obrazovky. Veškerá konfigurace, která má být provedena, musí být v tomto konfiguračním souboru, v našem případě vytvoříme soubor s názvem « ttrssupdate.service » provedením příkazu:

sudo nano ttrssupdate.service

V případě, že chcete použít vi nebo vim, můžete to také udělat bez problémů, bez ohledu na to, jaký textový editor používáte, nejdůležitější je obsah souboru pro vytvoření vlastního démona a že mají příponu „service“ jak jste viděli. Musíme mít na paměti, že pro vytvoření souboru v této cestě je zcela nezbytné být root, abyste jej vytvořili, nebo použít „sudo“, abyste jej mohli správně vytvořit.

Obsah souboru je v tomto příkladu následující:

[Unit] Description=Daemon TTRSS Auto-Update Feeds
After=network.target mysql.service
[Service] User=www-data
ExecStart=/var/www/html/rss/update_daemon2.php
[Install] WantedBy=multi-user.target

Musíme mít na paměti, že tato služba bude vždy začínat operačním systémem, pokud se nerozhodnete ne.

Dále vám ukážeme, co každá z částí předchozího konfiguračního souboru znamená:

  • Popis: můžeme zde zadat jméno a popis toho, co bude náš démon dělat, v tomto případě můžeme dát, co chceme, je to popis pro správce systému, abychom věděli, co démon dělá, aniž bychom museli hledat další kód.
  • Po: uvedeme, zda chceme, aby se načítal po jiných službách nebo komponentách systému. To je něco velmi důležitého, protože pokud naše služba vyžaduje, aby byla spuštěna další služba, budeme muset postupovat podle konkrétní sekvence. Existuje také další směrnice nazvaná „Před“, která dělá opak, což znamená, že naše služba je spuštěna před jinou službou, kterou určíme.
  • Uživatel – Uživatel operačního systému, který bude spouštět démona. Může také pracovat se skupinou. To je velmi důležité, protože v závislosti na oprávněních, která služba potřebuje, ji budeme muset spustit s rootem, naším neprivilegovaným uživatelem nebo jakýmkoli jiným uživatelem systému.
  • ExecStart: musíme uvést absolutní cestu (nefungují relativně) ke skriptu nebo binárnímu souboru, který chceme spustit, aby se daná služba spustila.
  • WantedBy: direktivy použití a další závislosti.

Jakmile máme nakonfigurován náš soubor .service, doporučujeme zkontrolovat, že vlastník souboru je root a že skupina je také, navíc bychom měli nakonfigurovat oprávnění 777 k dotyčnému souboru, můžeme to udělat takto:

chmod 777 ttrssupdate.service

Nyní, když ji máme plně nakonfigurovanou, ji musíme povolit a naučíme vás službu spravovat.

Spravujte vytvořenou službu

Nyní, když jsme vytvořili službu v operačním systému, než ji můžeme začít používat, musíme ji povolit příkazem „enable“. Abychom to mohli udělat, musíme jednoduše spustit příkaz „systemctl enable“ následovaný názvem služby, kterou jsme právě vytvořili. Není nutné to spouštět ve stejné cestě, kde jsou uloženy soubory, v našem případě by to bylo:

systemctl enable ttrssupdate.service

Samozřejmě se nás zeptá na heslo superuživatele systému, aby to správně povolilo, pro tento typ úlohy je nezbytné mít oprávnění superuživatele, jinak nebudeme moci nic dělat.

Nyní, když jsme službu povolili, musíme ji poprvé spustit ručně. Od této chvíle bude vždy spuštěna, i když restartujeme operační systém, automaticky se spustí i tato služba.

systemctl start ttrssupdate.service

V těchto chvílích bude služba aktivní v našem operačním systému. Ačkoli systemd může být docela komplikované, pokud se dostaneme do pokročilých věcí, vytvoření služby není příliš složité, jak jste viděli v tomto tutoriálu. Dále vám ukážeme další velmi užitečné příkazy pro správu naší nově vytvořené služby:

  • sudo systemctl daemon-reload: tato objednávka nám umožňuje znovu načíst všechny služby, což je velmi užitečné, pokud jich upravíme několik, tímto způsobem to můžeme udělat globálně se všemi.
  • sudo systemctl stop ttrssupdate.service: tento příkaz nám umožňuje zastavit dříve spuštěnou službu, zastavením služby bychom mohli provést změny, které nebylo možné provést při spuštění, například pro použití změn budeme muset službu zastavit a spustit .
  • sudo systemctl restart ttrssupdate.service: umožňuje nám restartovat službu (je to stejné jako její zastavení a spuštění, ale jediným příkazem).
  • journalctl -u ttrssupdate.service: umožňuje nám zobrazit protokol generovaný příslušnou službou v případě, že při jejím provádění dojde k chybě nebo k jakémukoli varování, které by mohlo v budoucnu vést k problémům.
  • sudo systemctl status ttrssupdate.service: umožňuje nám vidět stavové informace o dané službě, tento příkaz je nezbytný pro zjištění, zda je spuštěna nebo ne.

Jak jste viděli, vytvoření služby pomocí systemd je docela jednoduché a její správa pomocí různých příkazů, které jsme naznačili, je také docela jednoduchá.