Frigivelse af GNU Shepherd 0.8 init-systemet

Ledig servicechef GNU Shepherd 0.8 (eks dmd), som udvikles af udviklerne af GNU Guix System-distributionen som et afhængighedsbevidst alternativ til SysV-init init-systemet. 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 kan bruges både som det primære initialiseringssystem (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 til disse brugere. 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.

Vigtigste innovationer:

  • Make-kill-destructor implementerer, der dræber en gruppe processer;
  • Tilføjet parameter "default-pid-file-timeout", som bestemmer ventetiden for oprettelse af en PID-fil;
  • Hvis PID-filen ikke vises inden for timeout, afsluttes hele procesgruppen (beslutter problemet efterlader arbejdsprocesser uden en PID-fil);
  • Tilføjede "#:file-creation-mask" parameter til "make-forkexec-constructor", implementerede logfiloprettelse og holdt op med at understøtte den gamle kaldekonvention;
  • Løste problemer med kompilering på systemer uden prctl, såsom GNU/Hurd;
  • Rettede et problem, der fik SIGALRM til at blive sendt hvert sekund.

Kilde: opennet.ru

Tilføj en kommentar