Systemd a unit súbory
Menší zápisok o unit súboroch pre systemd služby.
Syntax unit súborov pre systemd je podobná súbrom ini z Windowsu.
Typy služieb:
Typ služby sa uvádza v kľúči Type v sekcii [Service]:
Type=simple : proces sa nesmie forknúť, služba sa spustí okamžite a nesmú byť na nej závislé ostatné služby.
Type=forking : systemd považuje službu za spustenú potom čo sa proces fork-ol a rodič skončil. Tento typ je použiteľný pre klasické démony, ale je nutné špecifikovať PIDFile=
Type=oneshot : použiteľné pre skripty (ukončia sa po vykonaní svojej práce) Type=notify : rovnaká ako Type=simple, služba musí poslať signál pre systemd, že je pripravená
Type=dbus : služba je pripravená ak sa BusName objaví v Dbus-e.
Type=idle : podobná typu simple. Spustenie služby je odložené pokiaľ všetky ostatné služby nie sú spustené. Unit súbory pre služby, ktoré má systemd spustiť sa nachádzajú na dvoch miestach: /usr/lib/systemd/system (unit súbory pre nainštalované balíky) /etc/systemd/system (unit súbory dodané adminom)
Editácia
Ak chceme upraviť nejaký unit súbor pre už nainštalovaný balíček, môžeme tak urobiť dvoma spôsobmi.
Vytvorenie nového unit súboru v /etc/systemd/system
Ak chceme prepísať celý unit súbor alebo len jeho časť, tak vytvoríme nový súbor v /etc/systemd/system touch servicename.service Potom nám už stačí zeditovať takýto súbor príkazom:
systemctl edit –full servicename
systemctl sa nás spýta, či chceme prepísať náš novo vytvorený prázdny súbor prepísať unit súborom služy z /usr/lib/systemd/sytem/servicename.service. Potvrdíme, že áno a tým pádom sa nám otvorí unit súbor službý v textovom editore, kde ho môžeme upraviť.
Prepísanie volieb v unit súbore
Ak chceme prepísať, doplniť len nejakú voľbu, nemusíme vytvárať nový unit súbor. Stači vytvoriť len conf súbor k danej službe, ktorý zabezpečí prepísanie nami požadovanej voľby. V /etc/systemd/system vytvoríme adresár servicename.d, kde vytvoríme conf súbor alebo súbory. Najjednoduchšie je opäť použiť systemctl, ktorý všetky potrebné kroky urobí za nás. Teda vytvorí adresár servicename.service.d a otvorí editor s novovytvoreným súborom, ktorý má názov override.conf. Sem pridáme čo potrebujeme a uložíme.
systemctl edit servicename
Potom čo sme urobili zmeny, je nutné oznámiť systemd-u, že nastali zmeny v unit súboroch
systemctl deamon-reload
Ak sme použivali systemctl edit, tak krok s deamon-reload môžeme vynechať, pretože to za nás urobí automaticky systemd.
Pre pridávanie komentárov sa musíte prihlásiť.
Pekné. Mňa by ale zaujímalo či keď mám vytvorenú službu v /etc/init.d/ pre nejakú aplikáciu tak či to bude fungovať aj pre systéme so systemd.
Resp. ako/kde vytvorím novú službu v systemd?
init.d je ignorovany (okrem tusim skriptov, ktore maju prefix boot).
ak sa mi bude chciet urobim vecer priklad ako vytvorit novy unit file.
no mohol by si veru :)