Byla zveřejněna verze správce služeb s6-rc 0.7.0.0, určená pro řízení spuštění iniciačních skriptů a služeb. Podporuje sledování stromu závislostí a automatické spouštění nebo zastavování služeb k dosažení požadovaného stavu. Nástroje s6-rc lze používat jak v iniciačních systémech, tak pro organizaci spuštění libovolných služeb v odpovědi na události odrážející změnu stavu systému. Systém podporuje iniciační skripty kompatibilní se sysv-init a může importovat informace o závislostech z sysv-rc nebo OpenRC. Kód je napsán v C a je šířen 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 spouštěcích úrovní (runlevel) v s6-rc je navržena koncepce sad (bundles), která umožňuje seskupit služby 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áří pomocí utility s6-rc-compile na základě obsahu adresářů se soubory pro spouštění/zastavování služeb. Pro analýzu a manipulace s databází jsou navrženy utility s6-rc-db a s6-rc-update. Nástroje s6 se používají v distribucích Obarun, Adelie a Artix a mohou být také volitelně použity v Gentoo, Void a Alpine.
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.
V nové verzi s6-rc a souvisejících utilitách:
- Byla zavedena příkaz „s6-rc reload“ pro restartování dlouhotrvajících služeb.
- Byl přidán ovládací soubor reload-signal, který určuje signál posílaný procesu pro restart (výchozí je SIGHUP).
- Byla odstraněna utilita s6-rc-bundle — změny bundlových sad bez přecompilace již nejsou podporovány.
- Byl navržen nový formát vnitřní databáze (pro aktualizaci je třeba přecompilace a spuštění utility s6-rc-format-upgrade).
- Bylo zajištěno správné zpracování situace opětovného spuštění utility s6-rc-init pro inicializaci služeb a zlepšeno zpracování systémových selhání.
- Do utility s6-rc-set-change byly přidány možnosti: -I/-i pro výstup varování nebo ukončení s chybou při zjištění konfliktní závislosti; -P/-p pro vypnutí/zapnutí automatického řešení konfliktů závislostí při změně stavu služeb.
- Byla odstraněna zastaralá možnost „-f“.
- Do utilit s6 byla přidána příkaz s6-svscanboot pro přesměrování logů supervizora s6-svscan do s6-log, když není spuštěn pod PID 1.
- Byla zavedena možnost „s6-svc -l“ pro posílání signálu pro restart.
- Do uživatelského rozhraní s6-frontend byla přidána podpora možností a příkazů: „s6 —user“ (pro práci s uživatelskými službami), „s6 live reset“, „s6 apply“, „s6 enable|disable|start|stop|kill|apply“, „s6 live stop —clean“.
- Na http serveru tipidee byla zavedena podpora FastCGI a přidána možnost cgi_pass_authorization.
Zdroj: opennet.ru
