Frigivelse af GNU Shepherd 0.9.2 init-systemet

Servicemanageren GNU Shepherd 0.9.2 (tidligere dmd) er blevet udgivet, som udvikles af udviklerne af GNU Guix System-distributionen som et alternativ til SysV-init initialiseringssystemet, der understøtter afhængigheder. Shepherd-kontroldæmonen og hjælpeprogrammerne er skrevet på Guile-sproget (en af ​​implementeringerne af Scheme-sproget), som også bruges til at definere indstillinger og parametre for lancering af tjenester. Shepherd bruges allerede i GuixSD GNU/Linux-distributionen og er også rettet mod brug i GNU/Hurd, men kan køre på ethvert POSIX-kompatibelt OS, hvor Guile-sproget er tilgængeligt.

Shepherd udfører arbejdet med at starte og stoppe tjenester ved at tage hensyn til relationerne mellem tjenester, dynamisk identificere og starte de tjenester, som den valgte service afhænger af. Shepherd understøtter også registrering af konflikter mellem tjenester og forhindrer dem i at køre samtidigt. Projektet kan bruges både som hovedinitialiseringssystem (init med PID 1), og i en separat form til at styre baggrundsprocesser for individuelle brugere (for eksempel til at køre tor, privoxy, mcron osv.) med eksekvering med rettighederne af disse brugere.

Blandt ændringerne:

  • Filbeskrivelser, der bruges i Shepherd, er nu markeret med O_CLOEXEC-flaget (close-on-exec) i stedet for at blive lukket med det samme, når en exec-kommando udføres, hvilket gør det muligt at sende håndtag til tjenester, der startes indirekte af en exec-kommando.
  • Klientforbindelser behandles nu på en ikke-blokerende måde, hvilket forhindrer shepherd i at hænge, ​​når der sendes en ufuldstændig kommando.
  • Sikrer, at der oprettes en mappe til logfiler, der er defineret i indstillingen "log-fil", hvis den ikke eksisterer.

Kilde: opennet.ru

Tilføj en kommentar