Byla připravena významná verze správce služeb s6-rc 0.5.3.0, určená pro řízení spouštění inicializačních skriptů a služeb s ohledem na závislosti. Nástroj s6-rc může být použit jak v init systémech, tak pro organizaci spouštění libovolných služeb v závislosti na událostech, které odrážejí změnu stavu systému. Poskytuje plné sledování stromu závislostí a automatické spouštění nebo zastavování služeb, aby se dosáhlo požadovaného stavu. Kód je napsán v jazyce C a je distribuován pod licencí ISC.
Správce služeb s6-rc, který může být považován za ekvivalent sysv-rc nebo OpenRC, zahrnuje sadu utilit pro spouštění a zastavování dlouhodobě fungujících procesů (démonů) nebo okamžitě ukončitelných inicializačních skriptů. Během provozu se zohledňují závislosti mezi komponenty, zajišťuje se paralelní spouštění nespojených skriptů a služeb a garantuje se opakující se posloupnost provádění skriptů při různých spuštěních. Všechny změny stavu se zpracovávají s ohledem na závislosti, přičemž je zajištěno, že závislosti nejsou porušovány (například při spuštění nějaké služby budou automaticky spuštěny potřebné závislosti a při zastavení dojde ke zastavení závislých služeb).
Místo úrovní spuštění (runlevel) nabízí s6-rc obecnější koncept sad (bundles), umožňující seskupování služeb podle libovolných kriterií a řešených úkolů. Pro zvýšení efektivity práce se používá zkompilovaná databáze závislostí, která je vytvářena utilitou s6-rc-compile na základě obsahu adresářů se soubory pro spouštění/zastavování služeb. Pro analýzu a manipulaci s databází jsou k dispozici utility s6-rc-db a s6-rc-update. Systém podporuje inicializační skripty kompatibilní se sysv-init a může importovat informace o závislostech z sysv-rc nebo OpenRC.
Mezi výhody s6-rc patří kompaktní implementace, která neobsahuje nic nadbytečného, kromě komponent potřebných k řešení přímých úloh, a spotřebovává minimum zdrojů. Na rozdíl od jiných správce služeb s6-rc podporuje prediktivní (offline) vytvoření grafu závislostí pro existující sady služeb, což umožňuje provést náročnou analýzu závislostí samostatně, nikoli při spuštění nebo při změně stavu. Systém není monolitický a je rozdělen do série jednotlivých, zaměnitelných modulů, z nichž každý podle filozofie Unixu řeší pouze konkrétní úkol.
V kombinaci s utilitami s6, které sledují práci procesů (analog daemontools a runit), nástrojový balíček umožňuje současně kontrolovat práci dlouho běžících služeb, například jejich restartování v případě havarijního ukončení, a zajišťovat spuštění sekvence příkazů v reprodukovatelné podobě, opakující se při různých spuštěních. Podporovány jsou také takové funkce jako aktivace služby při přístupu k socketu (spuštění zpracovatele při přístupu k síťovému portu), protokolování událostí procesu (náhrada syslogd) a kontrolované poskytování dodatečných oprávnění (analog sudo).
Současně je k dispozici vydání balíku s6-linux-init 1.0.7.0, který nabízí implementaci init procesu pro vytváření hotových inicializačních systémů pro operační systémy založené na jádře Linux, kde jsou pro správu služeb a inicializačních skriptů používány utilit s6 a s6-rc. S6 a s6-rc však nejsou vázány na s6-linux-init a mohou být použity s libovolnými inicializačními systémy.
Kromě toho projekt poskytuje:
- 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.
- s6-dns — soubor klientských knihoven a utilit, které nahrazují standardní DNS utility z BIND a djbdns.
V nové verzi s6-rc byla v utilitě s6-rc-compile implementována možnost čtení dat o závislostech a sadách služeb z adresářů místo souborů. Použití adresářů usnadňuje přidávání služeb do databáze s informacemi o závislostech při instalaci programů pomocí správce balíčků, protože umožňuje obejít se bez provádění změn v souborech. Podpora starého formátu založeného na souborech byla zachována pro zajištění kompatibility. V nové verzi s6-linux-init byla do utility s6-linux-init-maker přidána možnost „-S“ pro synchronizaci dat v kontejnerech.
Zdroj: opennet.ru
