Paglabas ng GNU Shepherd 0.9 init system

Dalawang taon pagkatapos ng pagbuo ng huling makabuluhang release, ang service manager na GNU Shepherd 0.9 (dating dmd) ay nai-publish, na binuo ng mga developer ng GNU Guix System distribution bilang alternatibo sa SysV-init initialization system na sumusuporta sa mga dependency . Ang Shepherd control daemon at mga utility ay nakasulat sa Guile language (isa sa mga pagpapatupad ng Scheme language), na ginagamit din para tukuyin ang mga setting at parameter para sa paglulunsad ng mga serbisyo. Ginagamit na ang Shepherd sa pamamahagi ng GuixSD GNU/Linux at nilalayon din itong gamitin sa GNU/Hurd, ngunit maaaring tumakbo sa anumang OS na sumusunod sa POSIX kung saan available ang wikang Guile.

Ginagawa ng Shepherd ang gawain ng pagsisimula at pagpapahinto ng mga serbisyo sa pamamagitan ng pagsasaalang-alang sa mga ugnayan sa pagitan ng mga serbisyo, dynamic na pagtukoy at pagsisimula ng mga serbisyo kung saan nakasalalay ang napiling serbisyo. Sinusuportahan din ng Shepherd ang pag-detect ng mga salungatan sa pagitan ng mga serbisyo at pagpigil sa mga ito na tumakbo nang sabay-sabay. Maaaring gamitin ang proyekto bilang pangunahing sistema ng pagsisimula (init sa PID 1), at sa isang hiwalay na anyo upang pamahalaan ang mga proseso sa background ng mga indibidwal na gumagamit (halimbawa, upang patakbuhin ang tor, privoxy, mcron, atbp.) na may pagpapatupad ng mga karapatan ng mga gumagamit na ito.

Mga pangunahing inobasyon:

  • Ang konsepto ng mga pansamantalang serbisyo (lumilipas) ay ipinatupad, awtomatikong hindi pinagana pagkatapos makumpleto dahil sa pagwawakas ng proseso o tawag ng "stop" na paraan, na maaaring kailanganin para sa mga synthesized na serbisyo na hindi maaaring i-restart pagkatapos ng shutdown.
  • Upang lumikha ng mga serbisyong tulad ng inetd, idinagdag ang pamamaraang "make-inetd-constructor".
  • Upang lumikha ng mga serbisyong na-activate sa panahon ng aktibidad ng network (sa istilo ng pag-activate ng systemd socket), idinagdag ang pamamaraang "make-systemd-constructor".
  • Idinagdag ang pamamaraan para sa pagsisimula ng isang serbisyo sa background - "start-in-the-background".
  • Nagdagdag ng mga parameter na ":supplementary-groups", "#:create-session" at "#:resource-limits" sa routine na "make-forkexec-constructor".
  • Pinagana ang operasyon nang hindi nagba-block habang naghihintay ng mga PID file.
  • Para sa mga serbisyong walang parameter na "#:log-file", ang output sa syslog ay ibinibigay, at para sa mga serbisyong may parameter na #:log-file, ang log ay isinusulat sa isang hiwalay na file na nagpapahiwatig ng oras ng mga pag-record. Ang mga log mula sa unprivileged na proseso ng pastol ay iniimbak sa $XDG_DATA_DIR na direktoryo.
  • Ang suporta para sa pagbuo gamit ang Guile 2.0 ay hindi na ipinagpatuloy. Ang mga problema kapag gumagamit ng Guile na bersyon 3.0.5-3.0.7 ay nalutas na.
  • Ang Fibers library 1.1.0 o mas bago ay kailangan na ngayong gumana.

Pinagmulan: opennet.ru

Magdagdag ng komento