GNU Shepherd 0.9 init sistemos išleidimas

Praėjus dvejiems metams po paskutinės reikšmingos leidimo sukūrimo, buvo paskelbtas paslaugų tvarkytuvas GNU Shepherd 0.9 (anksčiau dmd), kurį GNU Guix sistemos platinimo kūrėjai kuria kaip alternatyvą SysV-init inicijavimo sistemai, palaikančiai priklausomybes. . Shepherd valdymo demonas ir paslaugos yra parašyti Guile kalba (viena iš Scheme kalbos įgyvendinimų), kuri taip pat naudojama paslaugų paleidimo parametrams ir parametrams apibrėžti. Shepherd jau naudojamas GuixSD GNU/Linux paskirstyme ir taip pat skirtas naudoti GNU/Hurd, tačiau gali veikti bet kurioje su POSIX suderinamoje OS, kuriai yra Guile kalba.

„Shepherd“ paslaugų paleidimo ir stabdymo darbus atlieka atsižvelgdamas į paslaugų tarpusavio ryšius, dinamiškai identifikuodamas ir paleidęs paslaugas, nuo kurių priklauso pasirinkta paslauga. „Shepherd“ taip pat palaiko konfliktų tarp paslaugų aptikimą ir neleidžia jiems veikti vienu metu. Projektas gali būti naudojamas ir kaip pagrindinė inicijavimo sistema (init su PID 1), ir atskira forma atskirų vartotojų foniniams procesams valdyti (pavyzdžiui, paleisti tor, privoxy, mcron ir kt.) su vykdymu su teisėmis. šių vartotojų.

Pagrindinės naujovės:

  • Įdiegta laikinųjų paslaugų (laikinamųjų) koncepcija, automatiškai išjungiama pasibaigus procesui arba „stop“ metodo iškvietimui, kurio gali prireikti sintezuotoms paslaugoms, kurių negalima paleisti iš naujo po išjungimo.
  • Norint sukurti į inetd panašias paslaugas, buvo pridėta procedūra „make-inetd-constructor“.
  • Norint sukurti paslaugas, kurios aktyvuojamos tinklo veiklos metu (sistemos lizdo aktyvinimo stiliumi), buvo pridėta procedūra „make-systemd-constructor“.
  • Pridėta paslaugos paleidimo fone procedūra - „start-in-the-background“.
  • Prie "make-forkexec-constructor" rutinos pridėti parametrai ":supplementary-groups", "#:create-session" ir "#:resource-limits".
  • Įjungtas veikimas neužblokuojant laukiant PID failų.
  • Paslaugoms be parametro „#:log-file“ pateikiama išvestis į syslog, o paslaugoms su parametru #:log-file žurnalas įrašomas į atskirą failą, kuriame nurodomas įrašų laikas. Neprivilegijuoto ganytojo proceso žurnalai saugomi $XDG_DATA_DIR kataloge.
  • Palaikymas kuriant naudojant Guile 2.0 buvo nutrauktas. Problemos naudojant Guile 3.0.5-3.0.7 versijas buvo išspręstos.
  • Dabar reikalinga 1.1.0 ar naujesnės versijos „Fibers“ biblioteka.

Šaltinis: opennet.ru

Добавить комментарий