Izdanje GNU Shepherd 0.9 init sistema

Dvije godine nakon formiranja posljednjeg značajnog izdanja, objavljen je servis menadžer GNU Shepherd 0.9 (ranije dmd), koji razvijaju programeri distribucije GNU Guix System kao alternativu sistemu za inicijalizaciju SysV-init koji podržava zavisnosti . Shepherd kontrolni demon i uslužni programi su napisani na jeziku Guile (jedna od implementacija jezika Scheme), koji se također koristi za definiranje postavki i parametara za pokretanje servisa. Shepherd se već koristi u GuixSD GNU/Linux distribuciji i također je namijenjen upotrebi u GNU/Hurdu, ali može raditi na bilo kojem OS-u kompatibilnom s POSIX-om za koji je dostupan jezik Guile.

Shepherd obavlja posao pokretanja i zaustavljanja usluga uzimajući u obzir odnose između usluga, dinamički identificirajući i pokretajući usluge od kojih ovisi odabrana usluga. Shepherd također podržava otkrivanje sukoba između usluga i sprječavanje njihovog istovremenog pokretanja. Projekat se može koristiti i kao glavni sistem za inicijalizaciju (init sa PID 1), i u zasebnom obliku za upravljanje pozadinskim procesima pojedinačnih korisnika (na primjer, za pokretanje tor, privoxy, mcron, itd.) uz izvršavanje sa pravima ovih korisnika.

Glavne inovacije:

  • Implementiran je koncept privremenih usluga (prolaznih), koji se automatski deaktiviraju nakon završetka zbog prekida procesa ili poziva „stop” metode, što može biti potrebno za sintetizirane usluge koje se ne mogu ponovo pokrenuti nakon gašenja.
  • Za kreiranje usluga sličnih inetd-u, dodata je procedura “make-inetd-constructor”.
  • Za kreiranje usluga koje se aktiviraju tokom mrežne aktivnosti (u stilu aktivacije systemd socketa), dodata je procedura “make-systemd-constructor”.
  • Dodata procedura za pokretanje usluge u pozadini - “start-in-the-background”.
  • Dodani parametri ":supplementary-groups", "#:create-session" i "#:resource-limits" u proceduru "make-forkexec-constructor".
  • Omogućen rad bez blokiranja dok se čekaju PID datoteke.
  • Za usluge bez parametra “#:log-file” je omogućen izlaz u syslog, a za usluge sa parametrom #:log-file, dnevnik se upisuje u zasebnu datoteku koja označava vrijeme snimanja. Dnevnici iz neprivilegiranog pastir procesa pohranjeni su u direktoriju $XDG_DATA_DIR.
  • Podrška za izgradnju sa Guile 2.0 je ukinuta. Problemi pri korištenju Guile verzija 3.0.5-3.0.7 su riješeni.
  • Biblioteka Fibers 1.1.0 ili novija sada je potrebna za rad.

izvor: opennet.ru

Dodajte komentar