GNU Shepherd 0.8 init системасынын чыгарылышы

Жеткиликтүү тейлөө менеджери GNU Shepherd 0.8 (мурдагы dmd), аны GNU Guix тутумунун бөлүштүрүүчүлөрү тарабынан SysV-init инициализация системасына көз карандылыкты түшүнгөн альтернатива катары иштелип чыккан. Shepherd башкаруу демону жана утилиталары Guile тилинде жазылган (Схема тилинин ишке ашырууларынын бири), ал ошондой эле кызматтарды ишке киргизүү үчүн орнотууларды жана параметрлерди аныктоо үчүн колдонулат. Shepherd мурунтан эле GuixSD GNU/Linux дистрибуциясында колдонулган жана ошондой эле GNU/Hurdда колдонууга багытталган, бирок Guile тили жеткиликтүү болгон каалаган POSIX шайкеш OSде иштей алат.

Shepherd негизги инициализация системасы катары да (PID 1 менен башталгыч), ошондой эле жеке колдонуучулардын фондук процесстерин башкаруу үчүн өзүнчө формада (мисалы, tor, privoxy, mcron ж.б. иштетүү үчүн) укуктары менен колдонулушу мүмкүн. бул колдонуучулар. Shepherd кызматтардын ортосундагы мамилелерди эске алуу менен кызматтарды баштоо жана токтотуу ишин, тандалган кызмат көз каранды болгон кызматтарды динамикалык түрдө аныктоо жана баштоо менен аткарат. Shepherd ошондой эле кызматтардын ортосундагы чыр-чатактарды аныктоону жана алардын бир убакта иштешин алдын алууну колдойт.

Негизги инновациялар:

  • Make-kill-destructor процесстердин тобун өлтүрүүнү ишке ашырат;
  • PID файлын түзүү үчүн күтүү убактысын аныктаган "демейки-pid-файл-тайм-аут" параметри кошулду;
  • Эгерде PID файлы тайм-ауттун ичинде пайда болбосо, бүт процесс тобу токтотулат (чечим маселе PID файлы жок жумуш процесстерин калтыруу);
  • “make-forkexec-constructor” параметрине “#:file-creation-mask” параметри кошулду, журнал файлын түзүүнү ишке ашырды жана эски чакыруу конвенциясын колдоону токтотту;
  • GNU/Hurd сыяктуу prctl жок системаларда компиляциялоо маселелери чечилди;
  • SIGALRM секунд сайын жөнөтүлүп турган маселе оңдолду.

Source: opennet.ru

Комментарий кошуу