GNU Shepherd 0.9.2 init sistēmas izlaišana

Ir publicēts servisa pārvaldnieks GNU Shepherd 0.9.2 (agrāk dmd), ko izstrādā GNU Guix System distribūcijas izstrādātāji kā alternatīvu SysV-init inicializācijas sistēmai, kas atbalsta atkarības. Shepherd vadības dēmons un utilītas ir rakstītas Guile valodā (viena no shēmas valodas implementācijām), kas tiek izmantota arī pakalpojumu palaišanas iestatījumu un parametru definēšanai. Shepherd jau tiek izmantots GuixSD GNU/Linux izplatīšanā, un tas ir paredzēts lietošanai arī GNU/Hurd, taču tas var darboties jebkurā ar POSIX saderīgā operētājsistēmā, kurai ir pieejama Guile valoda.

Shepherd pakalpojumu palaišanas un apturēšanas darbu veic, ņemot vērā pakalpojumu savstarpējās attiecības, dinamiski identificējot un iedarbinot pakalpojumus, no kuriem atkarīgs izvēlētais pakalpojums. Shepherd atbalsta arī konfliktu atklāšanu starp pakalpojumiem un neļauj tiem darboties vienlaikus. Projektu var izmantot gan kā galveno inicializācijas sistēmu (init ar PID 1), gan atsevišķā formā atsevišķu lietotāju fona procesu vadīšanai (piemēram, lai palaistu tor, privoxy, mcron utt.) ar izpildi ar tiesībām no šiem lietotājiem.

Starp izmaiņām:

  • Failu deskriptori, kas tiek izmantoti programmā Shepherd, tagad ir atzīmēti ar karogu O_CLOEXEC (close-on-exec), nevis tiek aizvērti uzreiz, kad tiek izpildīta komanda exec, ļaujot rokturus nodot pakalpojumiem, kurus netieši palaida komanda exec-com.
  • Klientu savienojumi tagad tiek apstrādāti nebloķējošā veidā, kas neļauj ganam uzkārties, nosūtot nepilnīgu komandu.
  • Nodrošina, ka tiek izveidots direktorijs žurnālfailiem, kas definēti iestatījumā “žurnāla fails”, ja tas neeksistē.

Avots: opennet.ru

Pievieno komentāru