db.dobo.sk

systemd init

bez komentára

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/

 

 

 

 

píše: ďobo

November 1st, 2018 o 7:58 am

chlievik: systemd

okomentuj