A runit működése
A daemontools szabad reimplementációja; majdnem minden, ami igaz a runitre, igaz a daemontoolsra is, és fordítva
Az initet és az initscripteket váltja ki, valamint segít a naplózás megszerezésében. Be lehet vezetni kicsit, nagyon, és teljesen.
Ha kicsit vezetjük be, akkor megmarad a System V init, de mellette kapunk:
- Szolgáltatásmenedzsmentet. Az általunk kiválasztott szolgáltatások:
- tiszta környezettel indulnak
- újraindulnak, ha kilépnek
- opcionálisan megbízható naplózást kapnak
- naplóüzenet nem vész el naplózás közben
- méret alapján rotált logok
- utófeldolgozás lehetősége
- kiválasztott felhasználók sudo nélkül is menedzselhetik őket
- könnyedén lekérdezhető a státuszuk
- könnyedén küldhető nekik signal
Ha nagyon bevezetjük, akkor emellett még az initet is kiváltjuk, de a rendszerindulást továbbra is a hagyományos initscriptjeink vezénylik le, csak az inittab válik feleslegessé.
Ha teljesen bevezetjük, akkor az rcS után már csak a runit által menedzselt szolgáltatásaink futnak, vagyis az "rc 2" már nem kell, hogy lefusson.
Rendszerindítás runittal
Ha init helyett a runit indul, akkor a /etc/runit/1 nevű scriptet indítja el először. Ennek a tartalma lehet pl ez:
#!/bin/sh # system one time tasks PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin/X11 /etc/init.d/rcS /etc/init.d/makedev start /etc/init.d/systune start /etc/init.d/ud start /etc/firewall/firewall /etc/init.d/rmnologin start /etc/init.d/xend start /etc/init.d/xendomains start touch /etc/runit/stopit chmod 0 /etc/runit/stopit
Ha létezik és végrehajtható a /etc/runit/stopit file, akkor a runit a CONT signal hatására leállítja a rendszert. A ctrl-alt-del-t kezelő scriptből adhatunk rá futtatási jogot, ha azt akarjuk, hogy a ctrl-alt-del hatása leállítás legyen.
A /etc/runit/1 után a /etc/runit/2 jön (micsoda meglepetés):
#!/bin/sh PATH=/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin exec env - PATH=$PATH \ runsvdir -P /var/service 'log: ...........................................................................................................................................................................................................................................................................................................................................................................................................'
Innentől, amig a runsvdir ki nem lép, monitorozza a szolgáltatásainkat és fut a rendszer.
Ha kilép a runsvdir, kilép a /etc/runit/2 is, és elindul a /etc/runit/3, ami a leállításért felelős:
#!/bin/sh exec 2>&1 PATH=/sbin:/bin:/usr/sbin:/usr/bin LAST=0 test -x /etc/runit/reboot && LAST=6 echo 'Waiting for services to stop...' sv -w196 force-stop /var/service/* sv exit /var/service/* echo 'Shutdown...' /etc/init.d/rc $LAST