Release av GNU Shepherd 0.9 init-systemet

Två år efter bildandet av den sista betydande utgåvan publicerades tjänstehanteraren GNU Shepherd 0.9 (tidigare dmd), som utvecklas av utvecklarna av GNU Guix System-distributionen som ett alternativ till initieringssystemet SysV-init som stöder beroenden . Shepherd-kontrolldemonen och verktygen är skrivna på Guile-språket (en av implementeringarna av Scheme-språket), som också används för att definiera inställningar och parametrar för att starta tjänster. Shepherd används redan i GuixSD GNU/Linux-distributionen och är också avsedd att användas i GNU/Hurd, men kan köras på vilket POSIX-kompatibelt operativsystem som helst för vilket Guile-språket är tillgängligt.

Shepherd gör arbetet med att starta och stoppa tjänster genom att ta hänsyn till relationerna mellan tjänster, dynamiskt identifiera och starta de tjänster som den valda tjänsten är beroende av. Shepherd stöder också att upptäcka konflikter mellan tjänster och förhindra att de körs samtidigt. Projektet kan användas både som huvudinitieringssystem (init med PID 1), och i en separat form för att hantera bakgrundsprocesser för enskilda användare (till exempel för att köra tor, privoxy, mcron, etc.) med exekvering med rättigheterna av dessa användare.

Huvudsakliga innovationer:

  • Konceptet med temporära tjänster (transient) är implementerat, automatiskt inaktiverat efter slutförandet på grund av avslutande av processen eller anrop av "stopp"-metoden, vilket kan krävas för syntetiserade tjänster som inte kan startas om efter avstängning.
  • För att skapa inetd-liknande tjänster har proceduren "make-inetd-constructor" lagts till.
  • För att skapa tjänster som aktiveras under nätverksaktivitet (i systemd-socket-aktiveringsstilen), har proceduren "make-systemd-constructor" lagts till.
  • Tillagd procedur för att starta en tjänst i bakgrunden - "start-i-bakgrunden".
  • Lade till parametrarna ":supplementary-groups", "#:create-session" och "#:resource-limits" till rutinen "make-forkexec-constructor".
  • Aktiverad drift utan blockering i väntan på PID-filer.
  • För tjänster utan parametern "#:log-file" tillhandahålls utdata till syslog, och för tjänster med parametern #:log-file skrivs loggen till en separat fil som anger tidpunkten för inspelningarna. Loggar från den oprivilegierade herdeprocessen lagras i katalogen $XDG_DATA_DIR.
  • Stödet för att bygga med Guile 2.0 har upphört. Problem med att använda Guile version 3.0.5-3.0.7 har lösts.
  • Fiberbiblioteket 1.1.0 eller senare krävs nu för att fungera.

Källa: opennet.ru

Lägg en kommentar