systemd init
U init systémov sa po grub boote a inicializácii predáva spúšťanie démonov rutine /sbin/init. V systemd je /sbin/init len symlink na /lib/systemd/systemd
init
Všetky príkazy initu (aka start, stop…) sú lastne symlinky na systemd binárky, z dovodu kompatibility so systemV prostredím.
dobo # ll /sbin/ | grep init
lrwxrwxrwx 1 root root 20 Mar 29 2017 init -> /lib/systemd/systemd*
-rwxr-xr-x 1 root root 214216 May 19 2016 initctl*
lrwxrwxrwx 1 root root 7 Mar 29 2017 reload -> initctl*
lrwxrwxrwx 1 root root 7 Mar 29 2017 restart -> initctl*
lrwxrwxrwx 1 root root 7 Mar 29 2017 start -> initctl*
lrwxrwxrwx 1 root root 7 Mar 29 2017 status -> initctl*
lrwxrwxrwx 1 root root 7 Mar 29 2017 stop -> initctl*
lrwxrwxrwx 1 root root 14 Mar 29 2017 telinit -> /bin/systemctl*
OK, takže /sbin/init je link na binárku systemd. Ta spúšťa default.target, resp. všetky targety, ktoré default.target vyžaduje (obvykle je default.target aliasom pre multi-user.target). Ak niekoho zaujíma, aké sú závislosti medzi jednotlivými targetmi, tak potom základný systemd komand systemctl list-dependencies. Obvykle je rekurzívne spúšťanie targetov následovné: local-fs.target -> sysinit.target -> basic.target -> multi-user. target (default.target)
Či je default target aliasom pre multi-user.target (servery), alebo graphical.target (desktopy) je možné zkuknúť takto: systemctl get-default, alebo juknúť do GRUBu (kernel line – system.unit=NAZOV_TARGETU)
ODBOČKA
pri emergency sa grubu podsúva parameter init=/sbin/bash , takže namiesto súšťania démonov sa spustí bash a je možné tweakovať…
KONIEC ODBOČKY
low level targety
Bezohľadu na typ default.targetu sú niektoré targety vyžadované vždy na systemd based linuxu. Najdoležitejšie sú dva:
- local-fs.target (primountovanie FS, check kvót, inicializácia swapu, volá systemd-fstab-generator, ktorý číta /etc/fstab)
- sysinit.target (štartuje systemd-udevd, načíta hlavný konfigurák v /etc/sysctl.conf)
mid-level targety
- basic.target – SELinux atd…
- multi-user.target – spúšťanie štandardných démonov v user space (sshd, rsyslog, apache a pod.). V prípade, že sa enabluje služba, tak je vytvorený symlink služby do /etc/systems/system/multi-user.target.wants/