Release van servicemanager s6-rc 0.5.3.0 en initialisatiesysteem s6-linux-init 1.0.7

Er is een belangrijke release van de service manager s6-rc 0.5.3.0 voorbereid, ontworpen om de lancering van initialisatiescripts en services te beheren, rekening houdend met afhankelijkheden. De s6-rc toolkit kan zowel worden gebruikt in initialisatiesystemen als voor het organiseren van de lancering van willekeurige services in verband met gebeurtenissen die veranderingen in de systeemstatus weerspiegelen. Biedt volledige tracking van de afhankelijkheidsstructuur en automatisch opstarten of afsluiten van services om een ​​bepaalde status te bereiken. De code is geschreven in C en wordt gedistribueerd onder de ISC-licentie.

De s6-rc servicemanager, die kan worden beschouwd als een analoog van sysv-rc of OpenRC, bevat een reeks hulpprogramma's voor het starten en stoppen van langlopende processen (daemons) of onmiddellijk beëindigde initialisatiescripts. Tijdens het werk wordt rekening gehouden met de afhankelijkheden tussen componenten, wordt een parallelle lancering van scripts en services die elkaar niet kruisen verzekerd, en wordt gegarandeerd dat de volgorde van scriptuitvoering bij verschillende lanceringen wordt herhaald. Alle statuswijzigingen worden verwerkt, rekening houdend met afhankelijkheden, en zorgen ervoor dat afhankelijkheden niet worden geschonden (wanneer een service bijvoorbeeld wordt gestart, worden de afhankelijkheden die nodig zijn voor de werking ervan automatisch gestart, en wanneer ze worden gestopt, worden afhankelijke services ook gestopt).

In plaats van runlevels biedt s6-rc een universeler concept van bundels, waarmee u services kunt groeperen op basis van willekeurige kenmerken en op te lossen taken. Om de werkefficiëntie te verbeteren, wordt een gecompileerde afhankelijkheidsbasis gebruikt, gecreëerd door het hulpprogramma s6-rc-compile, gebaseerd op de inhoud van mappen met bestanden voor het starten/stoppen van services. De hulpprogramma's s6-rc-db en s6-rc-update worden aangeboden voor het parseren en manipuleren van de database. Het systeem ondersteunt sysv-init-compatibele init-scripts en kan afhankelijkheidsinformatie importeren uit sysv-rc of OpenRC.

Een van de voordelen van s6-rc is een compacte implementatie die niets overbodigs bevat, behalve componenten voor het oplossen van directe problemen, en die een minimum aan bronnen verbruikt. In tegenstelling tot andere servicemanagers ondersteunt s6-rc de proactieve (offline) constructie van een afhankelijkheidsgrafiek voor een bestaande set services, waardoor u resource-intensieve afhankelijkheidsanalyses afzonderlijk kunt uitvoeren, en niet tijdens het laden of statuswijzigingen. Tegelijkertijd is het systeem niet monolithisch en is het verdeeld in een reeks afzonderlijke en vervangbare modules, die elk, in overeenstemming met de Unix-filosofie, slechts een specifieke taak oplossen.

In combinatie met s6-hulpprogramma's die de werking van processen monitoren (analoog aan daemontools en runit), kunt u met de toolkit tegelijkertijd de werking van langlopende services monitoren, bijvoorbeeld door deze opnieuw te starten in geval van abnormale beëindigingen, en ervoor te zorgen dat een reeks van opdrachten wordt in een reproduceerbare vorm gelanceerd, herhaald bij verschillende startups. Ondersteunde functies zijn onder meer het activeren van een service bij toegang tot een socket (het starten van een handler bij toegang tot een netwerkpoort), het loggen van procesgebeurtenissen (ter vervanging van syslogd) en het gecontroleerd verlenen van extra rechten (analoog aan sudo).

Tegelijkertijd is de release van het s6-linux-init 1.0.7.0-pakket beschikbaar, dat een implementatie biedt van het init-proces voor het bouwen van kant-en-klare init-systemen voor besturingssystemen gebaseerd op de Linux-kernel, waarin de s6 en s6 -rc-hulpprogramma's worden gebruikt om services en initialisatiescripts te beheren. Tegelijkertijd zijn s6 en s6-rc niet gebonden aan s6-linux-init en kunnen ze, indien gewenst, met elk initialisatiesysteem worden gebruikt.

Daarnaast voorziet het project in:

  • s6-networking is een set hulpprogramma's voor het creëren van netwerkdiensten, vergelijkbaar met ucspi.
  • s6-frontend - een raamwerk voor het opnieuw creëren van de functionaliteit van daemontools en runit bovenop s6.
  • s6-portable-utils is een set standaard Unix-hulpprogramma's zoals cut, chmod, ls, sort en grep, geoptimaliseerd voor minimaal verbruik van bronnen en geleverd onder de ISC-licentie.
  • s6-linux-utils - Een set Linux-specifieke hulpprogramma's zoals chroot, freeramdisk, logwatch, mount en swapon.
  • s6-dns is een set clientbibliotheken en hulpprogramma's die de standaard DNS-hulpprogramma's van BIND en djbdns vervangen.

In de nieuwe versie van s6-rc implementeert het hulpprogramma s6-rc-compile het lezen van gegevens over afhankelijkheden en sets services uit mappen, in plaats van uit bestanden. Het gebruik van mappen vereenvoudigt het toevoegen van services aan de database met informatie over afhankelijkheden bij het installeren van programma's via pakketbeheerder, omdat u hiermee kunt doen zonder wijzigingen in bestanden aan te brengen. Ondersteuning voor het oude, op bestanden gebaseerde formaat is behouden om compatibiliteit te garanderen. In de nieuwe versie van s6-linux-init is de optie “-S” toegevoegd aan het hulpprogramma s6-linux-init-maker voor het synchroniseren van gegevens in containers.

Bron: opennet.ru

Voeg een reactie