Utgåvan av tjänstehanteraren s6-rc 0.7.0.0 har publicerats, avsedd för att hantera starten av initieringsscript och tjänster. Stöd för att spåra beroendeträd och automatisk start eller avslutning av tjänster för att uppnå angivet tillstånd. s6-rc-verktyg kan användas i både initieringssystem och för att organisera starten av godtyckliga tjänster kopplade till händelser som återspeglar förändringar i systemtillståndet. Systemet stödjer initieringsscript kompatibla med sysv-init och kan importera information om beroenden från sysv-rc eller OpenRC. Koden är skriven i C och distribueras under ISC-licensen.
Tjänstechefen s6-rc inkluderar en uppsättning verktyg för att starta och stoppa långvariga processer (demoner) eller omedelbart avslutande initieringsskript. Under drift säkerställs parallell start av icke-överlappande tjänster och en konsekvent sekvens av skriptens körning över olika starter. Alla tillståndsändringar hanteras med beaktande av beroenden, exempelvis när en viss tjänst startas, kommer nödvändiga beroenden för dess funktionalitet automatiskt att startas, och vid stopp – stoppas beroende tjänster.
Till skillnad från andra tjänstechefer stödjer s6-rc proaktiv (offline) uppbyggnad av beroendegrafen för det befintliga tjänstesetet, vilket gör att resurskrävande beroendeanalys kan utföras separat, snarare än under uppstart eller tillståndsändring. Systemet är inte monolitiskt och är uppdelat i en serie separata och utbytbara moduler, var och en av vilka i enlighet med Unix-filosofin löser endast en specifik uppgift. Projektet s6-rc följer minimalismens filosofi (innehåller inget överflödigt) och konsumerar minimala resurser.
Istället för körnivåer (runlevel) i s6-rc föreslås konceptet med paket (bundles) som möjliggör gruppering av tjänster utifrån godtyckliga egenskaper och uppgifter. För att öka effektiviteten används en kompilerad beroendedatabas som skapas av verktyget s6-rc-compile baserat på innehållet i kataloger med filer för att starta/stänga tjänster. För att bearbeta och manipulera med databasen erbjuds verktygen s6-rc-db och s6-rc-update. s6-verktyg används i distributionerna Obarun, Adelie och Artix, och kan även användas valfritt i Gentoo, Void och Alpine.
Projektet utvecklar också följdpaket som kompletterar s6-rc:
- s6 — verktyg för att spåra processers status och hantera processer (analogt med daemontools och runit). Funktioner som stödjer omstart av processer efter deras krasch, start av en hanterare (aktivering av tjänst) vid tillgång till en nätverksport, loggning av händelser (ersättning av syslogd) och kontrollerad tillhandahållning av ytterligare privilegier (analogt med sudo) stöds.
- s6-linux-init — en implementation av init-processen för operativsystem baserade på Linux-kärnan, som används för att skapa init-system där paket s6 och s6-rc används för att hantera tjänster och skript.
- s6-networking — en uppsättning verktyg för att skapa nätverkstjänster, liknande ucspi.
- s6-frontend — en wrapper för att återskapa funktionaliteten hos daemontools och runit ovanpå s6.
- s6-portable-utils — en uppsättning typiska Unix-verktyg, såsom cut, chmod, ls, sort och grep, optimerade för minimalt resursbehov och distribueras under ISC-licens.
- s6-linux-utils — en uppsättning verktyg som är kopplade till Linux, såsom chroot, freeramdisk, logwatch, mount och swapon.
- mdevd — händelsehanterare (analogt med udevd) som är avsedd för att hantera hotplugging av enheter. Enligt mdevd:s konfiguration är den kompatibel med mdev från Busybox.
- bcnm — en nätverkskonfigurator med möjlighet att konfigurera Wi-Fi på klientsidan.
- execline — ett skriptspråk.
- skalibs — ett bibliotek för att skapa säkra systemapplikationer i C.
- s6-dns — ett bibliotek och verktyg som ersätter typiska DNS-verktyg från BIND och djbdns.
- dnsfunnel — omdirigerar lokala DNS-frågor till en extern server (DNS-omdirigerare).
- shibari — en enkel DNS-server.
- tipidee — en HTTP-server med stöd för HTTP/1.1.
I den nya versionen av s6-rc och relaterade verktyg:
- Kommandot «s6-rc reload» för att omstarta långvariga tjänster har implementerats.
- En kontrollfil reload-signal har lagts till, som definierar signalen som skickas till processen för omstart (standard är SIGHUP).
- Verktyget s6-rc-bundle har tagits bort — ändringar i bundle-paket utan omkompilering stödjs inte längre.
- Ett nytt format för den interna databasen har föreslagits (för att uppdatera krävs omkompilering och körning av verktyget s6-rc-format-upgrade).
- Korrekt hantering av situationer med omstart av verktyget s6-rc-init för initiering av tjänster har säkerställts och hanteringen av systemfel har förbättrats.
- Options har lagts till i verktyget s6-rc-set-change: -I/-i för att skriva ut varning eller avsluta med fel vid upptäckta konflikterande beroenden; -P/-p för att stänga av/aktivera automatisk hantering av konflikterande beroenden vid ändring av tjänsternas tillstånd.
- Den föråldrade optionen «-f» har tagits bort.
- Kommandot s6-svscanboot har lagts till i verktyget s6 för att omdirigera loggar från övervakaren s6-svscan till s6-log, när den inte körs under PID 1.
- Funktionen «s6-svc -l» har implementerats för att skicka signal för omstart.
- Det har lagts till stöd för alternativ och kommandon i användargränssnittet s6-frontend: «s6 —user» (för att arbeta med användartjänster), «s6 live reset», «s6 apply», «s6 enable|disable|start|stop|kill|apply», «s6 live stop —clean».
- I http-servern tipidee har stöd för FastCGI implementerats och alternativet cgi_pass_authorization har lagts till.
Källa: opennet.ru
