Služby v systéme Linux sa spustia hneď, ako sa váš systém zavedie alebo reštartuje. Tu je návod, ako môžete na svojom počítači so systémom Linux vytvoriť službu systemd s automatickým spustením.

systemd je správcom služieb pre veľa známych distribúcií Linuxu. Služba je jednotka programu, ktorý zvyčajne beží na pozadí. Služby sa prirodzene spustia automaticky hneď po spustení systému a môžu bežať bez dozoru.

Ak potrebujete vytvoriť úlohu alebo program s automatickým spustením, ktorý sa spustí pri každom spustení alebo reštarte systému, môžete zvážiť vytvorenie novej služby. Poďme sa naučiť, ako vytvoriť novú, vlastnú systemd službu v systéme Linux.

Krok 1: Vytvorenie súboru služby

Na vytvorenie nového servisného súboru systemd je potrebných niekoľko krokov. Prvým z nich je vytvorenie súboru jednotky pre službu. Pred vytvorením servisného súboru musíte pochopiť jeho štruktúru.

Poďme študovať súbor služieb stiahnutím skutočného funkčného súboru služby z vášho systému Linux. Nižšie môžete vidieť súbor služby pre službu démona vmtools.

instagram viewer

Táto konkrétna služba nemusí byť vo vašom systéme prítomná, pokiaľ nepoužívate aj Linux na VMware s nainštalovanými nástrojmi VMware. Príslušná služba nie je dôležitá, pretože všetky služby, alebo skôr súbory jednotiek služieb, majú rovnakú základnú štruktúru s niektorými požadovanými prispôsobeniami.

Všetky servisné súbory systemd musia mať tri sekcie: [Služba], [Jednotka], a [Inštalácia]a niekoľko parametrov pod každou sekciou. Tu je to, čo každá sekcia obsahuje a prečo sú dôležité:

1. Jednotka

The Jednotka obsahuje dôležité metadáta, ako je popis a závislosti služby. Má tri parametre: Popis, Predtým, a Po. Ako to isté naznačuje, Popis parameter poskytuje určitý kontext služby a toho, čo robí.

The Predtým a Po parametre definujú podmienky, ktoré musia byť splnené, aby sa služba vykonala. Ak napríklad spúšťate službu webového servera, budete chcieť, aby sa spustila až potom, čo bude sieťová služba online. Takže by ste nastavili hodnotu Po pre sieťovú službu.

2. servis

The servis časť obsahuje dva povinné parametre: ExecStart, Typa niekoľko ďalších voliteľných parametrov, napr ExecReload, a viac.

ExecStart definuje príkaz, ktorý sa má vykonať pri spustení služby, zatiaľ čo Typ parameter určuje typ procesu, ktorý sa má spustiť.

3. Inštalácia

Táto sekcia a jej údaje sa volajú vždy, keď povolíte alebo zakážete službu pomocou príkaz systemctl.

Má pár parametrov. Jedným z bežných a nevyhnutných je WantedBy. The WantedBy parameter definuje cieľové jednotky, ktoré by sa mali spustiť vždy, keď je služba povolená. Predvolená hodnota je viacužívateľský.cieľ.

Tu uvedené parametre nie sú jediné parametre, ktoré môžete nastaviť v súbore jednotiek. Úplný zoznam parametrov môžete získať z oficiálna dokumentácia systemd.exec alebo zadaním man systemd.exec v termináli.

Súbor systémovej servisnej jednotky vždy končí znakom ".servis" predĺženie a musia byť uložené v /etc/systemd/system/ adresár. Vytvorte súbor služby pomocou dotykového príkazu so zvýšenými privilégiami tak, že mu predponu pridelíte sudo príkaz:

sudo touch /etc/systemd/system/.servis 

Teraz, keď ste vytvorili súbor služby, pristúpime k vyplneniu potrebnej syntaxe, aby bola služba platná a fungovala.

Krok 2: Konfigurácia servisného súboru

Pre demonštráciu vytvoríte vzorovú službu, ktorá sa spustí Nmap na skenovanie portov na vašom počítači a každých tridsať sekúnd uložte výstup do súboru. Aby ste dosiahli túto úlohu, tu je postup, ako štruktúrovať súbor servisnej jednotky:

[Jednotka]
Description=Ukážka vlastnej služby nmap.
After=network.target

[Služba]
Typ = jednoduchý
Používateľ = root
ExecStart=/usr/bin/nmap -sS -O -oN /home//results.txt localhost
Reštartovať = vždy
RestartSec=30

[Inštalácia]
WantedBy=multi-user.target

Aj keď tu uvedené parametre boli vysvetlené už skôr, poďme sa pozrieť na to, ako ovplyvňujú našu novovytvorenú službu, a tiež preskúmame nové zavedené v tejto jednotke: Reštart, RestartSec, a Používateľ.

Čo znamenajú parametre v každej sekcii:

  • Popis: Ľudsky čitateľný text na popis funkcií služby.
  • After=network.target: Diktovanie systému systemd, na ktorom je táto služba závislá sieť.cieľ a mala by začať až po sieť.cieľ služba bola spustená. Poznač si to Po sa nepoužíva na vytvorenie žiadneho priameho vzťahu závislosti, jednoducho funguje ako spúšťač.
  • Typ=jednoduchý: Existuje viacero typov služieb. Služba v tejto ukážke je však bežný proces, a preto to tak vyhlasujeme. Všetky rôzne hodnoty nájdete na oficiálnej stránke dokumentácie prepojenej skôr.
  • Reštart = vždy: To znamená, že vždy, keď sa služba ukončí, mala by sa vždy reštartovať.
  • RestartSec=30: Toto nastaví interval medzi každým spustením služby na 30 sekúnd.
  • User=root: Toto definuje, že služba bude bežať ako užívateľ root. V tomto pripade je to nutny krok, kedze Nmap nebude vediet bez pravi root.
  • ExecStart: Táto direktíva obsahuje absolútnu cestu k programu, ktorý sa má vykonať, spolu so všetkými požadovanými príznakmi alebo argumentmi potrebnými na správne fungovanie programu.
  • WantedBy=multi-user.target: Tento parameter v súbore služby určuje, ktorý cieľ by mal zahŕňať alebo „chceť“ službu. Keď je služba zahrnutá do cieľa, znamená to, že služba by sa mala spustiť, keď systém dosiahne tento cieľ počas procesu zavádzania. V tomto prípade by sa služba mala spustiť, keď systém prejde do režimu viacerých používateľov. Režim viacerých používateľov je stav, v ktorom je systém plne spustený a umožňuje viacerým používateľom prihlásiť sa a používať systém.

Krok 3: Povolenie a spustenie služby

Teraz, keď ste vytvorili súbor jednotky, na aktiváciu služby zostáva už len jej aktivácia a spustenie. Svoju službu môžete povoliť a spustiť pomocou príkazu systemctl.

Tu je postup, ako pomocou systemctl povoliť, spustiť a skontrolovať stav vašej služby:

povoliť sudo systemctl .servis
spustenie sudo systemctl .servis
stav sudo systemctl .servis

Teraz by vaša vlastná služba mala byť v prevádzke! V tomto prípade by ste mali vidieť skenovanie Nmap spustené každých tridsať sekúnd a výstup sa uloží do results.txt súbor v domovskom adresári.

Nastavenie systémovej služby v systéme Linux je jednoduché!

Aj keď sa nastavenie vlastnej služby od začiatku môže zdať na prvý pohľad náročné, je to celkom jednoduchý spôsob nastavenia spustite samoobslužný bezobslužný proces, ktorý za vás vykoná opakujúce sa úlohy a zlepší vaše produktivitu.

V ukážkovej službe sme sotva poškriabali povrch toho, ako môžete službu nakonfigurovať a nastaviť. Ak sa chcete dozvedieť všetko o tom, ako si môžete prispôsobiť svoju službu, odporúčame vám prejsť si oficiálnu dokumentáciu prepojenú v poznámke.

Ak vám nastavenie a údržba služby pripadá ako priveľká úloha, pouvažujte nad alternatívnym spôsobom automatizácie opakujúcich sa úloh v systéme Linux.