Interested Article - OpenRC

OpenRC система инициализации на основе зависимостей, которая работает вместе с программой инициализации init . Она полностью совместима со сценариями Gentoo , но, тем не менее, может использоваться и в других дистрибутивах Linux и BSD . Он был создан Роем Марплсом, разработчиком NetBSD, который также принимал активное участие в проекте Gentoo.

OpenRC предоставляет обычные функции, ожидаемые от современной системы инициализации: загрузка на основе зависимостей, процесс сегрегации через cgroups (в Linux и других системах — разделение между разными уровнями запуска), конфигурации переменных среды .

Такие операционные системы как Gentoo , Alpine Linux , , Parabola GNU/Linux-libre , , TrueOS и ряд других unix-подобных систем используют OpenRC , в то время как некоторые другие, такие как Devuan , предлагают её как один из вариантов . Это означает, что программные пакеты и демоны этих операционных систем/дистрибутивов поддерживают его, поставляют и/или используют доступные скрипты.

Дизайн

OpenRC состоит из нескольких модульных компонентов, основными из которых является init (необязательная), основная система управления зависимостями и supervise-daemon (необязательно). Он написан на C и POSIX -совместимой оболочке, что делает его пригодным для использования в системах BSD и Linux. Основная система OpenRC занимается управлением зависимостями и анализом выполнения сценария инициализации. OpenRC работает путем сканирования уровней запуска, построения графа зависимостей и последующего запуска необходимой сценарной службы. Он завершается после запуска скриптов. По умолчанию OpenRC использует модифицированную версию start-stop-daemon для управления демонами.

Скрипты имеют сходство со скриптами, используемыми в системе инициализации SysVinit , но предлагают несколько функций, упрощающих их создание. Предполагается, что сценарии имеют start(), stop() и status(), и система использует уже объявленные переменные для создания функций по умолчанию . Функция зависимостей используется для объявления зависимостей от других служб, которые будут выполняться с заголовками LSB в SysVinit . Конфигурация и механизм инициализации разделены файлами настройки конфигурации в каталоге conf.d и файлами настройки инициализации в каталоге init.d.

Openrc-init впервые появился в версии 0.25 в качестве опциональной замены для init. Поддерживается несколько других систем инициализации, включая SysVinit и Busybox

Supervise-daemon впервые появился в версии 0.21, дающей возможность супервизора в openrc. Он может быть включен в init скрипте для supervise-daemon, чтобы он запускал и контролировал демоном . Поддерживаются так же другие супервизоры демонов, включая runit и s6 .

Особенности

OpenRC обеспечивает ряд особенностей, которые преподносили инновационными такие системы инициализации, как systemd , GNU Shepherd или upstart, например, запуск аппаратных сценариев инициализации или поддержка cgroups . Реализация подобных функций не потребовала больших изменений, радикально изменяющих дизайн и зависимости.

  • Переносимость между Linux, TrueOS, FreeBSD и NetBSD
  • Параллельный запуск служб (по умолчанию отключен)
  • Загрузка на основе зависимостей
  • Разделение процессов через контрольные группы ( cgroups )
  • Ограничения ресурсов для каждой службы (ulimit)
  • Разделение кода и конфигурации (init.d / conf.d)
  • Расширяемые сценарии запуска
  • Скрипты инициализации с отслеживанием состояния (он уже запущен?(да))
  • Сложные сценарии инициализации для запуска нескольких компонентов ( Samba (smbd и nmbd), NFS (nfsd, portmap и Т. Д.))
  • Автоматический расчет зависимостей и определение порядка запуска служб
  • Модульная архитектура и разделение дополнительных компонентов ( Cron , syslog )
  • Выразительная и гибкая работа с сетью (включая VPN , Сетевые мосты и Т. Д.)
  • Подробный режим отладки

Интеграция Busybox и OpenRC

BusyBox может использоваться, чтобы заменить большинство утилит, необходимых OpenRC ( awk , shell , init , и другие POSIX -инструменты), в качестве основной оболочки. Все вызовы, как правило, возбуждаемые fork и , будут заменены ради повышения скорости.

См. также

Примечания

  1. — 2006.
  2. . GitHub . Дата обращения: 30 августа 2020. 18 февраля 2018 года.
  3. (30 августа 2020). Дата обращения: 30 августа 2020. 19 июля 2011 года.
  4. . devuan.org . 06.08.18. из оригинала 23 сентября 2018 . Дата обращения: 30 августа 2020 . {{ cite news }} : Проверьте значение даты: |date= ( справка )
  5. (англ.) . GitHub . — «Start-Stop-Daemon OpenRC has its own modified version of s-s-d, which is historically related and mostly syntax-compatible to Debian's s-s-d, but has been rewritten from scratch.» Дата обращения: 30 августа 2020. 11 декабря 2021 года.
  6. (англ.) . GitHub . — «All service scripts are assumed to have the following functions: start() stop() status()». Дата обращения: 11 марта 2022. 11 ноября 2020 года.
  7. (англ.) . GitHub (6 апреля 2020). Дата обращения: 30 августа 2020. 8 марта 2021 года.
  8. (англ.) . GitHub (30 августа 2020). Дата обращения: 30 августа 2020. 6 марта 2019 года.
  9. . Retrieved 5 April 2020. из оригинала 25 января 2021 . Дата обращения: 30 августа 2020 . {{ cite news }} : Проверьте значение даты: |date= ( справка )

Ссылки

Источник —

Same as OpenRC