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

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
27-Апр-2021 14:30

После около трёх лет разработки опубликован релиз системы инициализации Finit 4.0 (Fast init), развиваемой в качестве простой альтернативы SysV init и systemd. Проект основан на наработках, созданных при обратномм инжиниринге системы инициализации fastinit, используемой в Linux-прошивке нетбуков EeePC и примечательной очень быстрым процессом загрузки. Система в первую очередь нацелена на обеспечение загрузки компактных и встраиваемых систем, но также может применяться для обычных настольных и серверных окружений. Примеры сценариев для внедрения подготовлены для Void Linux, Alpine Linux и Debian GNU/Linux. Код проекта написан на языке Си и распространяется под лицензией 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 (версия 3.2 была пропущена из-за наличие изменений, нарушающих обратную совместимость):
  • Отдельная утилита reboot заменена на символическую ссылку на initctl по аналогии с утилитами halt, shutdown, poweroff и suspend.
  • Реализована индикация прогресса выполнения операций.
  • Изменена работа команд "inictl cond set|clear COND" для привязки действий к различным событиям. Для идентификации сервисов задействован синтаксис <pid/foo:id> вместо привязки к путям <svc/path/to/foo>.
  • Удалена встроенная реализация сервера 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
===========

Похожие новости: Теги для поиска: #_finit, #_fastinit, #_boot
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 19:47
Часовой пояс: UTC + 5