GNU Shepherd 0.9 init -järjestelmän julkaisu

Kaksi vuotta viimeisen merkittävän julkaisun muodostumisen jälkeen julkaistiin palvelunhallinta GNU Shepherd 0.9 (entinen dmd), jota GNU Guix System -jakelun kehittäjät kehittävät vaihtoehtona riippuvuuksia tukevalle SysV-init-alustusjärjestelmälle. . Shepherd Control Daemon ja apuohjelmat on kirjoitettu Guile-kielellä (yksi Scheme-kielen toteutuksista), jota käytetään myös palvelujen käynnistämisen asetusten ja parametrien määrittämiseen. Shepherd on jo käytössä GuixSD GNU/Linux -jakelussa, ja se on myös tarkoitettu käytettäväksi GNU/Hurdissa, mutta se voi toimia missä tahansa POSIX-yhteensopivassa käyttöjärjestelmässä, jolle Guile-kieli on saatavilla.

Shepherd tekee palveluiden käynnistämisen ja lopettamisen ottamalla huomioon palvelujen väliset suhteet, tunnistamalla ja käynnistämällä dynaamisesti palvelut, joista valittu palvelu riippuu. Shepherd tukee myös palveluiden välisten ristiriitojen havaitsemista ja niiden samanaikaisen toiminnan estämistä. Projektia voidaan käyttää sekä pääalustusjärjestelmänä (init PID 1:llä) että erillisessä muodossa yksittäisten käyttäjien taustaprosessien hallintaan (esim. tor, privoxy, mcron jne. suorittamiseen) suorittamalla oikeuksilla näistä käyttäjistä.

Tärkeimmät innovaatiot:

  • Tilapäisten palveluiden (transienttien) käsite on toteutettu, automaattisesti pois käytöstä prosessin päätyttyä tai "stop"-menetelmän kutsun vuoksi, mikä saattaa olla tarpeen syntetisoiduille palveluille, joita ei voida käynnistää uudelleen sammutuksen jälkeen.
  • Inetd-tyyppisten palvelujen luomiseksi on lisätty "make-inetd-constructor" -menettely.
  • Luodaksesi palveluita, jotka aktivoidaan verkkotoiminnan aikana (systemd socket aktivointityyliin), on lisätty "make-systemd-constructor"-menettely.
  • Lisätty menettely palvelun käynnistämiseksi taustalla - "start-in-the-background".
  • Lisätty parametrit ":supplementary-groups", "#:create-session" ja "#:resource-limits" "make-forkexec-constructor"-menettelyyn.
  • Käyttöönotto ilman estoa odottaessa PID-tiedostoja.
  • Palveluille, joissa ei ole “#:log-file”-parametria, tulostetaan syslogiin, ja palveluissa, joissa on parametri #:log-file, loki kirjoitetaan erilliseen tiedostoon, joka ilmoittaa tallennusajankohdan. Etuoikeudettoman paimenprosessin lokit tallennetaan hakemistoon $XDG_DATA_DIR.
  • Guile 2.0:lla rakentamisen tuki on lopetettu. Ongelmat Guile-versioiden 3.0.5-3.0.7 käytössä on ratkaistu.
  • Fibres-kirjasto 1.1.0 tai uudempi tarvitaan nyt toimiakseen.

Lähde: opennet.ru

Lisää kommentti