GNU Shepherd 0.9 init-süsteemi väljalase

Kaks aastat pärast viimase olulise väljalase ilmumist avaldati teenusehaldur GNU Shepherd 0.9 (endine dmd), mida arendavad GNU Guix Systemi distributsiooni arendajad alternatiivina sõltuvusi toetavale SysV-init lähtestamissüsteemile. . Shepherdi juhtimisdeemon ja utiliidid on kirjutatud Guile'i keeles (üks skeemikeele rakendustest), mida kasutatakse ka teenuste käivitamise sätete ja parameetrite määratlemiseks. Shepherd on juba kasutusel GuixSD GNU/Linuxi distributsioonis ja on mõeldud kasutamiseks ka GNU/Hurdis, kuid võib töötada mis tahes POSIX-iga ühilduvas OS-is, mille jaoks on saadaval Guile'i keel.

Shepherd teeb teenuste käivitamise ja peatamise töö, võttes arvesse teenuste vahelisi seoseid, tuvastades ja käivitades dünaamiliselt teenuseid, millest valitud teenus sõltub. Shepherd toetab ka teenustevaheliste konfliktide tuvastamist ja nende samaaegse käitamise takistamist. Projekti saab kasutada nii peamise lähtestamissüsteemina (init koos PID 1-ga) kui ka eraldi vormis üksikute kasutajate taustprotsesside haldamiseks (näiteks tor, privoxy, mcron jne käitamiseks) koos õigustega täitmisega nendest kasutajatest.

Peamised uuendused:

  • Rakendatud on ajutiste teenuste (mööduvate) kontseptsioon, mis keelatakse pärast lõpetamist automaatselt protsessi lõpetamise või "stop"-meetodi kutsumise tõttu, mis võib olla vajalik sünteesitud teenuste jaoks, mida ei saa pärast sulgemist taaskäivitada.
  • Inetd-laadsete teenuste loomiseks on lisatud protseduur “make-inetd-constructor”.
  • Võrgutegevuse käigus aktiveeritavate teenuste loomiseks (stiilis systemd sokli aktiveerimine) on lisatud protseduur “make-systemd-constructor”.
  • Lisatud protseduur teenuse käivitamiseks taustal – “start-in-the-background”.
  • Rutiini "make-forkexec-constructor" on lisatud parameetrid ":supplementary-groups", "#:create-session" ja "#:resource-limits".
  • Lubatud toiming ilma blokeerimiseta PID-failide ootamise ajal.
  • Teenuste puhul, millel pole parameetrit “#:log-file”, antakse väljund syslogile ja parameetriga #:log-file teenuste puhul kirjutatakse logi eraldi faili, mis näitab salvestamise aega. Privilegeeritud shepherd protsessi logid salvestatakse kataloogi $XDG_DATA_DIR.
  • Guile 2.0-ga ehitamise tugi on lõpetatud. Probleemid Guile'i versioonide 3.0.5-3.0.7 kasutamisel on lahendatud.
  • Nüüd on töötamiseks vajalik Fibersi teek 1.1.0 või uuem.

Allikas: opennet.ru

Lisa kommentaar