Služby v Linuxu se spouštějí, jakmile se váš systém zavede nebo restartuje. Zde je návod, jak můžete na svém počítači se systémem Linux vytvořit službu systemd s automatickým spouštěním.

systemd je správcem služeb pro mnoho známých linuxových distribucí. Služba je jednotka programu, která obvykle běží na pozadí. Služby se přirozeně spouštějí automaticky, jakmile se systém spustí, a mohou běžet bez dozoru.

Pokud potřebujete vytvořit automaticky spouštěnou úlohu nebo program, který se spustí při každém spuštění nebo restartu systému, můžete zvážit vytvoření nové služby. Pojďme se naučit, jak vytvořit novou, vlastní systemd službu v Linuxu.

Krok 1: Vytvoření souboru služby

K vytvoření nového souboru služby systemd je potřeba několik kroků. První z nich je vytvoření souboru jednotky pro službu. Než vytvoříte soubor služby, musíte pochopit jeho strukturu.

Pojďme si prostudovat soubor služeb stažením skutečného funkčního souboru služeb z vašeho systému Linux. Níže můžete vidět soubor služby pro službu démona vmtools.

instagram viewer

Tato konkrétní služba nemusí být ve vašem systému přítomna, pokud také nepoužíváte Linux na VMware s nainstalovanými nástroji VMware. Dotyčná služba není důležitá, protože všechny služby, nebo spíše soubory jednotek služeb, mají stejnou základní strukturu s některými potřebami přizpůsobení.

Všechny servisní soubory systemd musí mít tři sekce: [Servis], [Jednotka], a [Nainstalujte]a několik parametrů pod každou částí. Co jednotlivé sekce obsahují a proč jsou důležité:

1. Jednotka

The Jednotka sekce obsahuje důležitá metadata, jako je popis a závislosti služby. Má tři parametry: Popis, Před, a Po. Jak totéž naznačuje, Popis Parametr poskytuje určitý kontext služby a toho, co dělá.

The Před a Po parametry definují podmínky, které je třeba splnit, aby se služba mohla spustit. Pokud například spouštíte službu webového serveru, budete chtít, aby se spustila až poté, co bude síťová služba online. Takže byste nastavili hodnotu Po parametr k síťové službě.

2. Servis

The Servis sekce obsahuje dva povinné parametry: ExecStart, Typa několik dalších volitelných parametrů, jako je ExecReload, a více.

ExecStart definuje příkaz, který se má provést při spuštění služby, zatímco Typ Parametr určuje typ procesu, který se má spustit.

3. Nainstalujte

Tato sekce a její data se volají vždy, když službu povolíte nebo zakážete pomocí příkaz systemctl.

Má pár parametrů. Jedním z běžných a nezbytných je WantedBy. The WantedBy Parametr definuje cílové jednotky, které by se měly spustit vždy, když je služba povolena. Výchozí hodnota je víceuživatelský.cíl.

Zde uvedené parametry nejsou jediné parametry, které můžete nastavit v souboru jednotek. Úplný seznam parametrů můžete získat z oficiální dokumentace systemd.exec nebo zadáním man systemd.exec v terminálu.

Soubor servisní jednotky systemd vždy končí znakem ".servis" rozšíření a musí být uloženy v /etc/systemd/system/ adresář. Vytvořte soubor služby pomocí dotykového příkazu se zvýšenými oprávněními tím, že mu předponu dáte sudo příkaz:

sudo touch /etc/systemd/system/.servis 

Nyní, když jste vytvořili soubor služby, pojďme do něj naplnit nezbytnou syntaxi, aby byla služba platná a funkční.

Krok 2: Konfigurace souboru služby

Pro ukázku vytvoříte ukázkovou službu, která se spustí Nmap pro skenování portů na vašem počítači a každých třicet sekund ukládat výstup do souboru. Chcete-li tohoto úkolu dosáhnout, postupujte takto: strukturujte soubor servisní jednotky:

[Jednotka]
Description=Ukázka vlastní služby nmap.
Po=síť.cíl

[Servis]
Typ = jednoduchý
Uživatel=root
ExecStart=/usr/bin/nmap -sS -O -oN /home//results.txt localhost
Restart = vždy
RestartSec=30

[Nainstalujte]
WantedBy=multi-user.target

Přestože zde uvedené parametry byly vysvětleny dříve, pojďme si projít, jak ovlivňují naši nově vytvořenou službu, a také prozkoumáme nové, které jsou v této jednotce představeny: Restartujte, RestartSec, a Uživatel.

Parametry v každé sekci znamenají:

  • Popis: Lidsky čitelný text popisující funkce služby.
  • After=network.target: Diktování systemd, na kterém je tato služba závislá síť.cíl a měl by začít až po síť.cíl služba byla spuštěna. Všimněte si, že Po se nepoužívá k vytvoření žádného přímého vztahu závislosti, prostě funguje jako spouštěč.
  • Typ = jednoduchý: Existuje několik typů služeb. Služba v této ukázce je však běžný proces, a proto to prohlašujeme. Všechny různé hodnoty naleznete na oficiální stránce dokumentace, na kterou jsme odkazovali dříve.
  • Restart=vždy: To znamená, že při každém ukončení služby by se měla vždy restartovat.
  • RestartSec=30: Tím se nastaví interval mezi každým spuštěním služby na 30 sekund.
  • Uživatel=root: To definuje, že služba bude spuštěna jako uživatel root. V tomto případě je to nutný krok, protože Nmap nebude moci běžet bez oprávnění root.
  • ExecStart: Tato direktiva obsahuje absolutní cestu k programu, který má být proveden, spolu se všemi požadovanými příznaky nebo argumenty nezbytnými pro správnou funkci programu.
  • WantedBy=multi-user.target: Tento parametr v souboru služby určuje, který cíl by měl službu zahrnovat nebo „chtit“. Když je služba zahrnuta do cíle, znamená to, že by se služba měla spustit, když systém během procesu spouštění dosáhne tohoto cíle. V tomto případě by se služba měla spustit, když systém vstoupí do režimu pro více uživatelů. Režim pro více uživatelů je stav, kdy je systém plně spuštěn a umožňuje více uživatelům přihlásit se a používat systém.

Krok 3: Povolení a spuštění služby

Nyní, když jste vytvořili soubor jednotky, zbývají k aktivaci vaší služby pouze její aktivace a spuštění. Službu můžete povolit a spustit pomocí příkazu systemctl.

Zde je návod, jak používat systemctl k povolení, spuštění a kontrole stavu vaší služby:

povolit sudo systemctl .servis
start sudo systemctl .servis
stav sudo systemctl .servis

Nyní by vaše vlastní služba měla být v provozu! V tomto případě byste měli vidět skenování Nmap spuštěné každých třicet sekund a výstup se uloží do results.txt soubor v domovském adresáři.

Nastavení systémové služby na Linuxu je snadné!

I když se nastavení vlastní služby od nuly může na první pohled zdát skličující, je to docela snadný způsob nastavení vytvořit samočinný bezobslužný proces, který za vás provede opakující se úkoly a posílí vaše produktivita.

V ukázkové službě jsme sotva poškrábali povrch toho, jak můžete nakonfigurovat a nastavit službu. Chcete-li se dozvědět vše o tom, jak si můžete službu přizpůsobit, doporučujeme projít si oficiální dokumentaci, na kterou odkazuje poznámka.

Pokud vám nastavení a údržba služby připadá jako příliš velký úkol, zvažte alternativní způsob automatizace opakujících se úloh v systému Linux.