A fost publicată versiunea managerului de servicii s6-rc 0.7.0.0, destinat gestionării lansării scripturilor de inițializare și serviciilor. Este suportată urmărirea arborilor de dependență și lansarea sau oprirea automată a serviciilor pentru a atinge starea specificată. Instrumentarul s6-rc poate fi utilizat atât în sistemele de inițializare, cât și pentru organizarea lansării de servicii la evenimente care reflectă schimbarea stării sistemului. Sistemul suportă scripturi de inițializare compatibile cu sysv-init și poate importa informații despre dependențe din sysv-rc sau OpenRC. Codul este scris în limbajul C și este distribuit sub licența ISC.
Managerul de servicii s6-rc include un set de utilitară pentru lansarea și oprirea proceselor de lungă durată (demonii) sau a scripturilor de inițializare care se încheie rapid. În procesul de funcționare se asigură lansarea paralelă a serviciilor care nu se intersectează între ele și se garantează o secvență repetitivă la diferite lansări a execuției scripturilor. Toate modificările stării sunt procesate ținând cont de dependențe, de exemplu, la lansarea unui serviciu, dependențele necesare pentru funcționarea acestuia vor fi lansate automat, iar la oprire vor fi oprite și serviciile dependente.
Spre deosebire de alți manageri de servicii, s6-rc susține construirea în avans (în modul offline) a graficului de dependențe pentru setul de servicii existent, ceea ce permite efectuarea unei analize consumatoare de resurse a dependențelor separat, nu în timpul încărcării sau schimbării stării. În același timp, sistemul nu este monolitic și este împărțit în serii de module separate și schimbabile, fiecare dintre ele rezolvând, conform filozofiei Unix, doar o anumită sarcină. Proiectul s6-rc aderă la filozofia minimalismului (nu conține nimic în plus) și consumă un minim de resurse.
În locul nivelurilor de rulare (runlevel) în s6-rc, se propune conceptul de seturi (bundles), care permite gruparea serviciilor după caracteristici și sarcini rezolvabile. Pentru a îmbunătăți eficiența, se utilizează o bază de date de dependențe compilată, creată de utilitarul s6-rc-compile pe baza conținutului directoarelor cu fișiere pentru lansarea/opritrea serviciilor. Pentru analiza și manipularea bazei de date sunt propuse utilitarele s6-rc-db și s6-rc-update. Instrumentarul s6 este utilizat în distribuțiile Obarun, Adelie și Artix, și poate fi utilizat opțional în Gentoo, Void și Alpine.
Proiectul dezvoltă, de asemenea, pachete conexe care completează s6-rc:
- s6 — utilitare pentru monitorizarea și gestionarea proceselor (analog cu daemontools și runit). Sunt suportate funcționalități precum repornirea proceselor după ce acestea au fost terminate brusc, activarea unui handler (activarea serviciului) la accesarea unui port de rețea, jurnalizarea evenimentelor (înlocuirea syslogd) și oferirea controlată de privilegii suplimentare (analog cu sudo).
- s6-linux-init — implementarea procesului init pentru sistemele de operare bazate pe kernel Linux, utilizată pentru a crea sisteme de inițializare în care gestionarea serviciilor și scripturilor se face prin intermediul pachetelor s6 și s6-rc.
- s6-networking — un set de utilitare pentru crearea de servicii de rețea, similar cu ucspi.
- s6-frontend — o interfață pentru recrearea funcționalității daemontools și runit deasupra s6.
- s6-portable-utils — un set de utilitare Unix standard, cum ar fi cut, chmod, ls, sort și grep, optimizate pentru a consuma resurse minime și livrate sub licența ISC.
- s6-linux-utils — un set de utilitare legate de Linux, cum ar fi chroot, freeramdisk, logwatch, mount și swapon.
- mdevd — manager de evenimente (analog cu udevd), destinat gestionării conectării disfunctelor de dispozitive. Conform configurării, mdevd este compatibil cu mdev din Busybox.
- bcnm — configurator de rețea cu capacități de configurare Wi-Fi pe partea clientului.
- execline — limbaj de scriere a scripturilor.
- skalibs — bibliotecă pentru crearea aplicațiilor de sistem sigure în limbajul C.
- s6-dns — un set de biblioteci client și utilitare, înlocuind utilitarele DNS standard din BIND și djbdns.
- dnsfunnel — redirecționează cererile DNS locale către externe. serverul (DNS forwarder).
- shibari — server DNS simplu.
- tipidee — server HTTP cu suport pentru HTTP/1.1.
În noua versiune s6-rc și utilitare asociate:
- A fost implementată comanda „s6-rc reload” pentru reintegrarea serviciilor cu funcționare prelungită.
- A fost adăugat fișierul de control reload-signal, care definește semnalul trimis procesului pentru reintegrare (implicit SIGHUP).
- Utilitarul s6-rc-bundle a fost eliminat — modificările seturilor bundle fără recompilare nu mai sunt suportate.
- A fost propus un nou format pentru baza de date internă (pentru actualizare este necesară recompilarea și rularea utilitarului s6-rc-format-upgrade).
- A fost asigurată o gestionare corectă a situației de reintegrare a utilitarului s6-rc-init pentru inițializarea serviciilor și a fost îmbunătățită gestionarea defecțiunilor sistemice.
- În utilitarul s6-rc-set-change au fost adăugate opțiuni: -I/-i pentru a afișa un avertisment sau a termina cu o eroare la descoperirea unei dependențe conflictuale; -P/-p pentru a dezactiva/activa rezolvarea automată a conflictelor de dependență la schimbarea stării serviciilor.
- Opțiunea învechită „-f” a fost eliminată.
- În utilitarul s6 a fost adăugată comanda s6-svscanboot pentru redirecționarea jurnalelor supervizorului s6-svscan către s6-log, când este executat nu sub PID 1.
- A fost implementată opțiunea „s6-svc -l” pentru trimiterea semnalului de repornire.
- În interfața utilizatorului s6-frontend a fost adăugată suport pentru opțiuni și comenzi: „s6 —user” (pentru lucrul cu serviciile utilizatorului), „s6 live reset”, „s6 apply”, „s6 enable|disable|start|stop|kill|apply”, „s6 live stop —clean”.
- În serverul http tipidee a fost implementat suport pentru FastCGI și a fost adăugată opțiunea cgi_pass_authorization.
Sursa: opennet.ro
