Frigivelse af GNU Shepherd 0.9 init-systemet

To år efter dannelsen af ​​den sidste betydelige udgivelse blev servicemanageren GNU Shepherd 0.9 (tidligere dmd) 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.

Vigtigste innovationer:

  • Konceptet med midlertidige tjenester (transient) er implementeret, automatisk deaktiveret efter afslutning på grund af afslutning af processen eller kald af "stop"-metoden, som kan være påkrævet for syntetiserede tjenester, der ikke kan genstartes efter nedlukning.
  • For at skabe inetd-lignende tjenester er proceduren "make-inetd-constructor" blevet tilføjet.
  • For at oprette tjenester, der aktiveres under netværksaktivitet (i systemd-socket-aktiveringsstilen), er proceduren "make-systemd-constructor" blevet tilføjet.
  • Tilføjet procedure for at starte en tjeneste i baggrunden - "start-i-baggrunden".
  • Tilføjede parametrene ":supplementary-groups", "#:create-session" og "#:resource-limits" til rutinen "make-forkexec-constructor".
  • Aktiveret drift uden blokering, mens du venter på PID-filer.
  • For tjenester uden parameteren "#:log-file" leveres output til syslog, og for tjenester med parameteren #:log-fil skrives loggen til en separat fil, der angiver tidspunktet for optagelserne. Logfiler fra den uprivilegerede hyrdeproces gemmes i mappen $XDG_DATA_DIR.
  • Support til bygning med Guile 2.0 er afbrudt. Problemer ved brug af Guile version 3.0.5-3.0.7 er blevet løst.
  • Fibres-biblioteket 1.1.0 eller nyere er nu påkrævet for at fungere.

Kilde: opennet.ru

Tilføj en kommentar