Выпуск сістэмы ініцыялізацыі GNU Shepherd 0.9.2

Апублікаваны сэрвісны мэнэджар GNU Shepherd 0.9.2 (былы dmd), які развіваецца распрацоўшчыкамі дыстрыбутыва GNU Guix System у якасці альтэрнатывы сістэме ініцыялізацыі SysV-init, якая падтрымлівае залежнасці. Кіраўнік дэман і ўтыліты Shepherd напісаны на мове Guile (адна з рэалізацый мовы Scheme), які таксама выкарыстоўваецца для вызначэння налад і параметраў запуску сэрвісаў. Shepherd ужо ўжываецца ў дыстрыбутыве GuixSD GNU/Linux і накіраваны таксама на выкарыстанне ў GNU/Hurd, але можа працаваць у любой POSIX-сумяшчальнай АС, для якой даступны мова Guile.

Shepherd выконвае працу па запуску і прыпынку сэрвісаў, улічваючы ўзаемасувязь паміж сэрвісамі, дынамічна вызначаючы і запускаючы сэрвісы, ад якіх залежыць абраны сэрвіс. Shepherd таксама падтрымлівае азначэнне канфліктаў паміж сэрвісамі і прадухіляе іх адначасовае выкананне. Праект можа выкарыстоўвацца як у ролі асноўнай сістэмы ініцыялізацыі (init c PID 1), так і ў адасобленым выглядзе для кіравання фонавымі працэсамі асобных карыстальнікаў (напрыклад, для запуску tor, privoxy, mcron і да т.п.) з выкананнем з правамі дадзеных карыстальнікаў.

Сярод змен:

  • Выкарыстоўваныя ў Shepherd файлавыя дэскрыптары зараз пазначаюцца сцягам O_CLOEXEC (close-on-exec), а не зачыняюцца адразу пры выкананні "exec-command", што дазваляе перадаваць дэскрыптары сэрвісам, запушчаным не наўпрост, а пры дапамозе "exec-command".
  • Кліенцкія злучэнні зараз апрацоўваюцца ў неблакавальным рэжыме, што дазваляе выключыць завісанне shepherd пры адпраўцы няпоўнай каманды.
  • Забяспечана стварэнне каталога для лог-файлаў, вызначаных у наладзе "log-file", у выпадку яго адсутнасці.

Крыніца: opennet.ru

Дадаць каментар