GNU Shepherd 0.8 init sistēmas izlaišana

Pieejams servisa vadītājs GNU gans 0.8 (ex dmd), ko izstrādā GNU Guix System izplatīšanas izstrādātāji kā atkarību apzinošu alternatīvu SysV-init inicializācijas sistēmai. 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 ir paredzēts lietošanai arī GNU/Hurd, taču var darboties jebkurā ar POSIX saderīgā operētājsistēmā, kurai ir pieejama Guile valoda.

Shepherd var izmantot gan kā galveno inicializācijas sistēmu (init ar PID 1), gan atsevišķā formā atsevišķu lietotāju fona procesu pārvaldībai (piemēram, lai palaistu tor, privoxy, mcron utt.) ar izpildi ar tiesībām šiem lietotājiem. 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.

Galvenie jauninājumi:

  • Make-kill-destructor rīkus, kas nogalina procesu grupu;
  • Pievienots parametrs “default-pid-file-timeout”, kas nosaka gaidīšanas laiku PID faila izveidei;
  • Ja taimauta laikā PID fails neparādās, visa procesa grupa tiek pārtraukta (nolemj problēma darba procesu atstāšana bez PID faila);
  • Pievienots parametram “#:file-creation-mask” “make-forkexec-constructor”, ieviesta žurnālfaila izveide un pārtraukta vecās izsaukšanas metodes atbalsts;
  • Atrisinātas problēmas ar kompilāciju sistēmās bez prctl, piemēram, GNU/Hurd;
  • Novērsta problēma, kuras dēļ SIGALRM tika nosūtīts katru sekundi.

Avots: opennet.ru

Pievieno komentāru