Издаване на системата за инициализация GNU Shepherd 0.9

Две години след предишното значимо издаване, е публикуван мениджърът на услуги GNU Shepherd 0.9 (бивш 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 и т.н.) с изпълнение с правата на съответните потребители.

Основни нововъведения:

  • Реализирана е концепцията за времеви услуги (transient), които автоматично се изключват след завършване поради прекратяване на процеса или извикване на метода „stop“, което може да е необходимо за синтезирани услуги, които не могат да бъдат рестартирани след приключване.
  • Добавена е процедурата „make-inetd-constructor“ за създаване на услуги, подобни на inetd.
  • Добавена е процедурата „make-systemd-constructor“ за създаване на услуги, активирани при мрежова активност (в стил системd socket activation).
  • Добавена е процедура за стартиране на услугата във фонов режим — „start-in-the-background“.
  • В процедурата „make-forkexec-constructor“ са добавени параметрите „:supplementary-groups“, „#:create-session“ и „#:resource-limits“.
  • Осигурена е работа без блокиране по време на изчакване на PID файлове.
  • За услуги без параметър „#:log-file“ е осигурен износ в syslog, а за услуги с параметър „#:log-file“ — запис на логовете в отделен файл с указание на времето на записите. Логовете от непривилегирован процес shepherd се запазват в директорията $XDG_DATA_DIR.
  • Поддръжката на компилация с Guile 2.0 е прекратена. Проблемите с версиите Guile 3.0.5-3.0.7 са решени.
  • Сега е необходима библиотеката Fibers версия 1.1.0 или по-нова.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster