Vrijgave van het GNU Shepherd 0.9 init-systeem

Twee jaar na de vorming van de laatste belangrijke release werd de servicemanager GNU Shepherd 0.9 (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.

Belangrijkste innovaties:

  • Het concept van tijdelijke services (tijdelijk) is geïmplementeerd, dat na voltooiing automatisch wordt uitgeschakeld als gevolg van beëindiging van het proces of het aanroepen van de “stop”-methode, wat nodig kan zijn voor gesynthetiseerde services die na het afsluiten niet opnieuw kunnen worden gestart.
  • Om inetd-achtige services te creëren, is de procedure “make-inetd-constructor” toegevoegd.
  • Om services te creëren die worden geactiveerd tijdens netwerkactiviteit (in de systemd socket-activeringsstijl), is de procedure “make-systemd-constructor” toegevoegd.
  • Procedure toegevoegd voor het starten van een service op de achtergrond - “start-op-de-achtergrond”.
  • Parameters ":supplementary-groups", "#:create-session" en "#:resource-limits" toegevoegd aan de "make-forkexec-constructor"-procedure.
  • Actie mogelijk zonder blokkering tijdens het wachten op PID-bestanden.
  • Voor services zonder de parameter “#:log-file” wordt uitvoer naar syslog geleverd, en voor services met de parameter #:log-file wordt het log naar een afzonderlijk bestand geschreven dat het tijdstip van de opnames aangeeft. Logboeken van het onbevoegde herderproces worden opgeslagen in de map $XDG_DATA_DIR.
  • Ondersteuning voor bouwen met Guile 2.0 is stopgezet. Problemen bij het gebruik van Guile-versies 3.0.5-3.0.7 zijn opgelost.
  • De Fibers-bibliotheek 1.1.0 of nieuwer is nu vereist om te werken.

Bron: opennet.ru

Voeg een reactie