Издавање на GNU Shepherd 0.9 init системот

Две години по формирањето на последното значајно издание, беше објавен менаџерот на услуги GNU Shepherd 0.9 (поранешен dmd), кој го развиваат развивачите на дистрибуцијата на GNU Guix System како алтернатива на системот за иницијализација SysV-init кој поддржува зависности . Контролниот демон и алатките на Shepherd се напишани на јазикот Guile (една од имплементациите на јазикот Scheme), кој исто така се користи за дефинирање на поставките и параметрите за стартување услуги. Shepherd веќе се користи во дистрибуцијата на GuixSD GNU/Linux и исто така е наменет за употреба во GNU/Hurd, но може да работи на кој било оперативен систем компатибилен со POSIX за кој е достапен јазикот Guile.

Shepherd ја врши работата на започнување и прекинување на услугите земајќи ги предвид односите помеѓу услугите, динамично идентификувајќи ги и започнувајќи ги услугите од кои зависи избраната услуга. Shepherd, исто така, поддржува откривање на конфликти помеѓу услугите и спречување на нивно истовремено работење. Проектот може да се користи и како главен систем за иницијализација (init со PID 1), и во посебна форма за управување со процесите во позадина на поединечни корисници (на пример, за извршување на tor, privoxy, mcron, итн.) со извршување со правата на овие корисници.

Главните иновации:

  • Концептот на привремени услуги (минливи) е имплементиран, автоматски оневозможен по завршувањето поради завршување на процесот или повикување на методот „стоп“, кој може да биде потребен за синтетизирани услуги што не можат да се рестартираат по исклучувањето.
  • За создавање услуги слични на inetd, додадена е процедурата „make-inetd-constructor“.
  • За да се создадат услуги кои се активираат за време на мрежната активност (во стилот за активирање на системски штекер), додадена е процедурата „направи-систем-конструктор“.
  • Додадена е процедура за започнување услуга во позадина - „старт-во-заднина“.
  • Додадени параметри „:supplementary-groups“, „#:create-session“ и „#:resource-limits“ во рутината „make-forkeexec-constructor“.
  • Овозможена работа без блокирање додека се чекаат PID-датотеки.
  • За услуги без параметарот „#:log-file“, се обезбедува излез во syslog, а за услуги со параметарот #:log-file, дневникот се запишува во посебна датотека што го покажува времето на снимање. Дневниците од непривилегираниот овчарски процес се зачувани во директориумот $XDG_DATA_DIR.
  • Поддршката за градење со Guile 2.0 е прекината. Проблемите при користење на Guile верзии 3.0.5-3.0.7 се решени.
  • Сега се бара да работи библиотеката Fibers 1.1.0 или понова.

Извор: opennet.ru

Додадете коментар