Доступна система инициализации Finit 4.0

След около три години разработка, е публикуван релез на системата за инициализация Finit 4.0 (Fast init), развивана като проста алтернатива на SysV init и systemd. Проектът е основан на разработки, извършени чрез обратен инженеринг на системата за инициализация fastinit, използвана в Linux софтуера на нетбук EeePC и известна с много бързия си процес на зареждане. Системата първо и най-вече е насочена към осигуряване на зареждане на компактни и вградени системи, но също така може да се прилага за обичайни настолни и сървърни среди. Подготвени са примери за внедряване за Void Linux, Alpine Linux и Debian GNU/Linux. Кодът на проекта е написан на езика C и е разпространяван под MIT лиценз.

Finit поддържа нива на изпълнение (runlevel) в стил SysV init, следене на работоспособността на фоновите процеси (автоматичен рестарт на услугата в случай на срив), изпълнение на еднократни обработвачи, стартиране на услуги, като се вземат предвид зависимости и произволни условия, прикрепяне на допълнителни обработвачи за стартиране преди или след изпълнение на услугата. Например, може да се настрои стартирането на услугата само след достъп до мрежата или след стартиране на друга услуга, като syslogd. За задаване на ограничения се използва Cgroups v2.

За разширяване на функционалността и адаптация към собствените нужди могат да се използват плъгини, за които е предоставена система от hook-ове, позволяващи прикрепяне на обработвачи към различни етапи на зареждане и изпълнение на услугите, а също така осигуряване на свързаност с външни събития. Например, подготвени са плъгини за поддръжка на D-Bus, ALSA, netlink, resolvconf, горещо свързване на устройства, проверка на наличността и зареждане на модули на ядрото, обработка на PID файлове и настройка на средата за X сървър.

Поддържа се използването на стандартни скриптове за стартиране на услуги, създадени за SysV init (/etc/rc.d и /etc/init.d не се използват, но поддръжката на /etc/inittab може да бъде реализирана чрез плъгин), както и на сценарии rc.local, файлове с променливи на околната среда и мрежови настройки /etc/network/interfaces, както в Debian и BusyBox. Настройките могат да бъдат дефинирани както в един файл за конфигурация /etc/finit.conf, така и да бъдат разположени в няколко файла в директорията /etc/finit.d.

Управлението се осъществява чрез стандартния инструментариум initctl и run-parts, което позволява активиране и деактивиране на услуги в зависимост от нива на зареждане, както и селективно стартиране на част от услугите. В състава на Finit също е включена вградена реализация на getty (управление на терминала и входа на потребители), watchdog за наблюдение на работоспособността и режим на възстановяване след срив с вграден sulogin за стартиране на изолирана командна обвивка.

Доступна система инициализации Finit 4.0

Сред промените, добавени в версия Finit 4.0 (версия 3.2 беше пропусната заради наличието на промени, нарушаващи обратната съвместимост):

  • Отделният инструмент reboot е заменен с символична връзка към initctl аналогично на инструментите halt, shutdown, poweroff и suspend.
  • Реализирана е индикация на напредъка при извършване на операции.
  • Променен е начинът на работа на командите «inictl cond set|clear COND», за да свържат действия към различни събития. За идентификация на услугите е използвана синтаксисът вместо привързване към пътища .
  • Вградената реализация е премахната. сървър inetd, при необходимост, може да бъде заменен с xinetd.
  • Добавена е поддръжка на cgroups v2 за стартиране на услуги в отделни cgroup.
  • Добавен е режим на възстановяване след срив с уникален suslogin.
  • Добавена е поддръжка за start/stop скриптове от SysV init.
  • Добавени са обработчици pre:script и post:script, позволяващи указване на собствени действия, които да се изпълняват преди или при стартиране на услугата.
  • Добавена е поддръжка за env:file с променливи на средата.
  • Добавена е възможност за наблюдение на произволни PID файлове.
  • Добавена е възможност за стартиране на задачи и услуги с използване на относителни пътища.
  • В initctl е добавена опция «-b» за изпълнение на действия в неинтерактивен режим (batch mode).
  • Вграденото watchdog е заменено с отделен вариант watchdogd.
  • Добавен е плъгин за автоматично зареждане на модули на ядрото за устройства, свързващи се по време на работа.
  • Добавен е плъгин за обработка на /etc/modules-load.d/.
  • Добавена е поддръжка за автоматично перезареждане на услугите след промяна на настройките, което позволява да се избягва ръчното изпълнение на командата «initctl reload». По подразбиране е деактивирано и изисква повторна компилация с «./configure —enable-auto-reload».
  • Добавена е възможност за водене на лог на операции, влияещи на сигурността, като промяна на runlevel, стартиране и спиране на услуги, неуспехи на услуги.
  • Поддръжката на /etc/network/interfaces е подобрена.

    Източник: opennet.ru
Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster