Vrijgave van het GNU Shepherd 0.9.2 init-systeem

Er is servicemanager GNU Shepherd 0.9.2 (voorheen dmd) gepubliceerd, die wordt ontwikkeld door de ontwikkelaars van de GNU Guix System-distributie als alternatief voor het SysV-init-initialisatiesysteem dat afhankelijkheden ondersteunt. De Shepherd-controledaemon en hulpprogramma's zijn geschreven in de Guile-taal (een van de implementaties van de Scheme-taal), die ook wordt gebruikt om instellingen en parameters voor het starten van services te definiëren. Shepherd wordt al gebruikt in de GuixSD GNU/Linux-distributie en is ook bedoeld voor gebruik in GNU/Hurd, maar kan draaien op elk POSIX-compatibel besturingssysteem waarvoor de Guile-taal beschikbaar is.

Shepherd doet het werk bij het starten en stoppen van services door rekening te houden met de relaties tussen services, waarbij de services waarvan de geselecteerde service afhankelijk is, dynamisch worden geïdentificeerd en gestart. Shepherd ondersteunt ook het detecteren van conflicten tussen services en het voorkomen dat deze gelijktijdig worden uitgevoerd. Het project kan zowel als hoofdinitialisatiesysteem (init met PID 1) als in een aparte vorm worden gebruikt om achtergrondprocessen van individuele gebruikers te beheren (bijvoorbeeld om tor, privoxy, mcron, enz. uit te voeren) met uitvoering met de rechten van deze gebruikers.

Onder de veranderingen:

  • Bestandsdescriptors die in Shepherd worden gebruikt, zijn nu gemarkeerd met de vlag O_CLOEXEC (close-on-exec) in plaats van onmiddellijk te worden gesloten wanneer een exec-commando wordt uitgevoerd, waardoor handvatten kunnen worden doorgegeven aan services die indirect zijn gestart door een exec-commando.
  • Clientverbindingen worden nu op een niet-blokkerende manier verwerkt, waardoor herder niet blijft hangen bij het verzenden van een onvolledig commando.
  • Zorgt ervoor dat er een map wordt gemaakt voor logbestanden die zijn gedefinieerd in de instelling “logbestand” als deze niet bestaat.

Bron: opennet.ru

Voeg een reactie