Udgivelsen af service manageren s6-rc 0.5.6.0 er præsenteret, som er designet til at styre opstarten af initialiseringsscripts og services. Der understøttes overvågning af afhængighedstræet og automatisk opstart eller afslutning af services for at opnå den ønskede tilstand. s6-rc værktøjssættet kan anvendes både i initialiseringssystemer og til at organisere opstart af vilkårlige services i relation til hændelser, der afspejler ændringer i systemets tilstand. Systemet understøtter initialiseringsscripts, der er kompatible med sysv-init, og kan importere afhængighedsinformation fra sysv-rc eller OpenRC. Koden er skrevet i C og distribueres under ISC-licensen.
Service manageren s6-rc inkluderer et sæt værktøjer til at starte og stoppe langvarige processer (demoner) eller kortvarige initialiseringsscripts. Under drift sikres der en parallelt kørende start af uafhængige services, og der garanteres en gentagelig sekvens af scripts ved forskellige opstarter. Alle ændringer i tilstanden håndteres under hensyntagen til afhængigheder, for eksempel ved opstart af en service vil de nødvendige afhængigheder automatisk blive startet, og ved stop vil de afhængige services blive stoppet.
I modsætning til andre service managers understøtter s6-rc proaktiv (offline) opbygning af en afhængighedsgraf for den eksisterende samling af services, hvilket muliggør ressourcekrævende afhængighedsanalyse separat og ikke under opstart eller ændring af tilstand. Systemet er ikke monolitisk, men opdelt i en række separate og udskiftelige moduler, hvor hver især i overensstemmelse med Unix-filosofien løser en bestemt opgave. Projektet s6-rc følger minimalismens filosofi (indeholder ikke unødvendige elementer) og forbruger minimum af ressourcer.
I stedet for kørselsniveauer (runlevel) i s6-rc introduceres konceptet bundles, som muliggør gruppering af tjenester efter vilkårlige kriterier og opgaver. For at forbedre effektiviteten anvendes en kompilieret afhængigheds-database, der oprettes af værktøjet s6-rc-compile baseret på indholdet af mapper med filer til opstart/nedlukning af tjenester. Til analyse og manipulation af databasen tilbydes værktøjerne s6-rc-db og s6-rc-update.
Samtidig er der skabt nye versioner af de tilknyttede pakker, der supplerer s6-rc:
- s6 2.13.2.0 — værktøjer til overvågning og håndtering af processer (svarende til daemontools og runit). Funktioner som genstart af processer efter deres nedbrud, aktivering af en handler (start af service) ved adgang til en netværksport, loggning af begivenheder (erstatning af syslogd) og kontrolleret tildeling af ekstra privilegier (svarende til sudo) understøttes.
- s6-linux-init 1.1.3.0 — implementering af init-proces til operativsystemer baseret på Linux-kernen, der bruges til at oprette init-systemer, hvor pakkerne s6 og s6-rc anvendes til at styre tjenester og scripts.
- s6-networking 2.7.1.0 — en samling værktøjer til oprettelse af netværkstjenester, der ligner ucspi.
- s6-frontend — et lag for at genskabe funktionaliteten fra daemontools og runit ovenpå s6.
- s6-portable-utils 2.3.1.0 — en pakke af standard Unix-værktøjer som cut, chmod, ls, sort og grep, optimeret til minimal ressourceforbrug og leveret under ISC-licensen.
- s6-linux-utils 2.6.3.0 — en samling værktøjer knyttet til Linux, såsom chroot, freeramdisk, logwatch, mount og swapon.
- mdevd 0.1.7.0 — en hændelsesmanager (svarende til udevd), der er designet til at håndtere hot-plugging af enheder. Ifølge konfigurationen er mdevd kompatibel med mdev fra Busybox.
- bcnm 0.0.2.0 — en netværkskonfigurator med muligheder for at konfigurere Wi-Fi på klientsiden.
- execline 2.9.7.0 — et sprog til skriptoprettelse.
- skalibs 2.14.4.0 — et bibliotek til oprettelse af sikre systemapplikationer i C.
- s6-dns 2.4.1.0 — en samling klientbiblioteker og værktøjer, der erstatter typiske DNS-værktøjer fra BIND og djbdns.
- dnsfunnel 0.0.3.0 — omdirigerer lokale DNS-forespørgsler til ekstern server (DNS forwarder).
- shibari 0.0.2.0 — en simpel DNS-server.
- tipidee 0.0.6.0 — en HTTP-server med understøttelse af HTTP/1.1.
I de nye versioner er der tilføjet support for pkg-config til alle pakker. I biblioteket skalibs er der implementeret varianter af input/output-funktioner, hvis kørselstid kan begrænses af en timeout. I mdevd er der tilføjet en mulighed for "-I" til at angive navnet på netlink-gruppen til modtagelse af forespørgsler, og standard bufferstørrelsen er blevet øget til 1 MB. I tipideed er det blevet muligt at streame output fra CGI-scripts, der er tilføjet support til metoderne PUT, DELETE og PATCH, og direktivet autochunk er blevet implementeret for chunked-kodning af de overførte data.
Kilde: opennet.ru
