Systemd a jednoduchá služba
Ako vytvoriť unit súbor pre service, ktorá nám zabezpečí spustenie nejakého nášho skriptu po štarte systému.
Syntax unit súboru je inšpirovaná z XDG Desktop Entry Specification, .destkop súbor, ktorá sa podobá ini súborom z MS Windows. Podrobné informácie možno nájsť v manuálovej stranke systemd.unit.
Predstavme si, že máme nejaký skript, ktorý chceme aby sa spúšťal automaticky po štarte. Napríklad skript, ktorý obsahuje pravidlá pre iptables. Obsah neriešime, kľudne to môže byť ľubovolný skript.
Na toto nám poslúži service zo systemd. Service unit súbor obsahuje niekoľko sekcií a to všeobecné sekcie [Unit] a [Install] a sekcie špecifické pre daný unit súbor (služba, zariadenie…). Každa sekcia je popísana podrobne v manuálovej stránke. Napríklad pre náš príklad potrebujeme tri sekcie: [Unit], [Install] a [Service]. Prvé dve sú všeobecné a sú popísané v manuálovej stránke systemd.unit. Tretia sekcia popisuje našu službu a je popísaná v manuálovej stránke systemd.service.
Takže viac info v:
man 5 systemd.unit
man 5 systemd.service
Náš skript sa volá serverfw.sh a je uložený v /usr/lib/systemd/scripts (prípadne inde). Vytvoríme si service súbor pre tento skript, pomenujme ho serverfw.service s týmto obsahom:
[Unit]
Description=Nahra pravidla pre iptables
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/lib/systemd/scripts/serverfw.sh
[Install]
WantedBy=network.target
Súbor uložíme do /etc/systemd/system a zabezpečíme aby sa po reštarte naša služba aktivovala a teda spustila náš skript:
systemctl enable /etc/systemd/system/serverfw.service
Jednolivé kľúče v sekciách sú takmer samovysvelujúce.
Description je nejaký opis našej služby.
Type určuje typ služby, v našom prípade je vhodný typ oneshot. RemainAfterExit určuje či bude systemd považovať službu za aktívnu ak proces (v našom prípade skript) sa ukončí (teda nejde o démona).
ExecStart je cesta k nášmu skriptu.
WantedBy definuje, že naša služba sa aktivuje potom, prípadne súčane s nastavením siete.
Užitočné voľby sú ešte napr. ExecReload, ExecStop na prípadné znovunahratie pravidiel pre iptables, pripadné ich odstránenie.
Viac info možno nájsť v manuálových stránkach pre systemd.
Pre pridávanie komentárov sa musíte prihlásiť.
Fajííín. Nieje to až také strašné.
Tu:
Asi nemá byť bodka na konci, či?
dik.
mas pravdu, bodka tam nema byt. fixol som to.