Byl vydán release správce služeb s6-rc 0.6.0.0, který je určen pro správu spouštění inicializačních skriptů a služeb. Podporuje sledování stromu závislostí a automatické spouštění nebo zastavování služeb pro dosažení požadovaného stavu. Nástroj s6-rc lze používat jak v inicializačních systémech, tak pro organizaci spouštění libovolných služeb vázaných na události, které odrážejí změnu stavu systému. Systém podporuje inicializační skripty kompatibilní se sysv-init a může importovat informace o závislostech ze sysv-rc nebo OpenRC. Kód je napsán v jazyce C a šíří se pod licencí ISC.
Správce služeb s6-rc obsahuje sadu utilit pro spuštění a zastavení dlouhodobě běžících procesů (démonů) nebo okamžitě ukončitelných iniciačních skriptů. Během provozu zajišťuje paralelní spuštění neslučitelných služeb a garantuje opakující se sekvenci provádění skriptů při různých spuštěních. Všechny změny stavu jsou zpracovávány se zohledněním závislostí, například při spuštění nějaké služby budou automaticky spuštěny nezbytné závislosti pro její provoz, a při zastavení budou zastaveny i závislé služby.
Na rozdíl od jiných správců služeb s6-rc podporuje proaktivní (v offline režimu) budování grafu závislostí pro existující sadu služeb, což umožňuje provést náročnou analýzu závislostí samostatně, a nikoli během spuštění nebo změny stavu. Systém však není monolitický a je rozdělen na sérii samostatných a vyměnitelných modulů, z nichž každý podle filozofie Unixu řeší pouze určitou úlohu. Projekt s6-rc se drží filozofie minimalismu (neobsahuje nic nadbytečného) a spotřebovává minimum zdrojů.
Místo úrovní spuštění (runlevel) nabízí s6-rc koncept sad (bundles), který umožňuje skupinování služeb podle libovolných znaků a řešených úkolů. Pro zvýšení efektivity práce se používá zkompilovaná databáze závislostí, která se vytváří utilitou s6-rc-compile na základě obsahu katalogů s soubory pro spouštění/zastavování služeb. Pro analýzu a manipulaci s databází jsou nabízeny utility s6-rc-db a s6-rc-update.
V nové verzi byly přidány kolekce utilit s6-rc-repo-* a s6-rc-set-* pro správu repozitářů s definicemi služeb; byla zajištěna podpora sdílených knihoven na platformě macOS; byla přidána možnost „—bootdb“ pro konfiguraci během fáze sestavení spouštěcí databáze s informacemi o službách a jejich závislostech; do utility s6-rc-compile byla přidána možnost „-v2“.
Projekt také vyvíjí příslušné balíčky, které doplňují s6-rc:
- s6 — utility pro sledování procesů a správu procesů (analog daemontools a runit). Podporovány jsou funkce jako restartování procesů po jejich havarijním ukončení, spuštění handleru (aktivace služby) při přístupu k síťovému portu, logování událostí (náhrada syslogd) a kontrolované poskytování dodatečných privilegií (analog sudo).
- s6-linux-init — implementace init procesu pro operační systémy založené na jádře Linux, používaná k vytváření inicializačních systémů, ve kterých se pro správu služeb a skriptů používají balíčky s6 a s6-rc.
- s6-networking — soubor utilit pro vytváření síťových služeb, podobný ucspi.
- s6-frontend — obal pro rekonstrukci funkcionality daemontools a runit nad s6.
- s6-portable-utils — soubor standardních Unix utilit, jako jsou cut, chmod, ls, sort a grep, optimalizovaných pro minimální spotřebu prostředků a dodávaných pod licencí ISC.
- s6-linux-utils — soubor utilit, vázaných na Linux, jako jsou chroot, freeramdisk, logwatch, mount a swapon.
- mdevd — správce událostí (analog udevd), určený pro zpracování horkého připojení zařízení. Podle konfigurace je mdevd kompatibilní s mdev z Busyboxu.
- bcnm — síťový konfigurovač s možnostmi pro konfiguraci Wi-Fi na straně klienta.
- execline — jazyk pro psaní skriptů.
- skalibs — knihovna pro vytváření bezpečných systémových aplikací v jazyce C.
- s6-dns — soubor klientských knihoven a utilit, které nahrazují standardní DNS utility z BIND a djbdns.
- dnsfunnel — přesměrovává místní DNS dotazy na externí server (DNS forwarder).
- shibari — jednoduchý DNS server.
- tipidee — HTTP server s podporou HTTP/1.1.
Zdroj: opennet.ru
