Utgivelse av GNU Shepherd 0.8 init-systemet

Tilgjengelig serviceleder GNU Shepherd 0.8 (tidligere dmd), som utvikles av utviklerne av GNU Guix System-distribusjonen som et avhengighetsbevisst alternativ til SysV-init init-systemet. Shepherd-kontrolldaemonen og verktøyene er skrevet på Guile-språket (en av implementeringene av Scheme-språket), som også brukes til å definere innstillinger og parametere for lansering av tjenester. Shepherd brukes allerede i GuixSD GNU/Linux-distribusjonen og er også rettet mot bruk i GNU/Hurd, men kan kjøres på et hvilket som helst POSIX-kompatibelt OS som Guile-språket er tilgjengelig for.

Shepherd kan brukes både som hovedinitialiseringssystem (init med PID 1), og i en egen form for å administrere bakgrunnsprosesser til individuelle brukere (for eksempel for å kjøre tor, privoxy, mcron, etc.) med utførelse med rettighetene til disse brukerne. Shepherd gjør arbeidet med å starte og stoppe tjenester ved å ta hensyn til relasjonene mellom tjenester, dynamisk identifisere og starte tjenestene som den valgte tjenesten er avhengig av. Shepherd støtter også å oppdage konflikter mellom tjenester og hindre dem i å kjøre samtidig.

Hovedinnovasjoner:

  • Make-kill-destructor implementerer å drepe en gruppe prosesser;
  • Lagt til parameter "default-pid-file-timeout", som bestemmer ventetiden for å lage en PID-fil;
  • Hvis PID-filen ikke vises innen tidsavbruddet, avsluttes hele prosessgruppen (bestemmer problem å forlate arbeidsprosesser uten en PID-fil);
  • Lagt til "#:file-creation-mask" parameter til "make-forkexec-constructor", implementerte loggfiloppretting og sluttet å støtte den gamle kallekonvensjonen;
  • Løste problemer med kompilering på systemer uten prctl, slik som GNU/Hurd;
  • Rettet et problem som førte til at SIGALRM ble sendt hvert sekund.

Kilde: opennet.ru

Legg til en kommentar