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

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

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

Асноўныя навіны:

  • У make-kill-destructor рэалізавана забіванне групы працэсаў;
  • Дададзены параметр "default-pid-file-timeout", які вызначае час чакання стварэння PID-файла;
  • Калі PID-файл не з'явіўся на працягу таймаўту забяспечана завяршэнне ўсёй групы працэсаў (вырашае праблему з пакіданнем працоўных працэсаў без PID-файла);
  • У "make-forkexec-constructor" дададзены параметр "#:file-creation-mask", рэалізавана стварэнне лог-файлаў і спынена падтрымка старой дамовы аб выкліках;
  • Вырашаны праблемы з кампіляцыяй на сістэмах без prctl, такіх як GNU/Hurd;
  • Ухіленая недапрацоўка, якая прыводзіла да адпраўкі SIGALRM кожную секунду.

Крыніца: opennet.ru

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