Interested Article - OpenRC
- 2020-03-07
- 1
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 и , будут заменены ради повышения скорости.
См. также
Примечания
- — 2006.
- . GitHub . Дата обращения: 30 августа 2020. 18 февраля 2018 года.
- (30 августа 2020). Дата обращения: 30 августа 2020. 19 июля 2011 года.
-
.
devuan.org
. 06.08.18.
из оригинала
23 сентября 2018
. Дата обращения:
30 августа 2020
.
{{ cite news }}
: Проверьте значение даты:|date=
( справка ) - (англ.) . 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 года.
- (англ.) . GitHub . — «All service scripts are assumed to have the following functions: start() stop() status()». Дата обращения: 11 марта 2022. 11 ноября 2020 года.
- (англ.) . GitHub (6 апреля 2020). Дата обращения: 30 августа 2020. 8 марта 2021 года.
- (англ.) . GitHub (30 августа 2020). Дата обращения: 30 августа 2020. 6 марта 2019 года.
-
. Retrieved 5 April 2020.
из оригинала
25 января 2021
. Дата обращения:
30 августа 2020
.
{{ cite news }}
: Проверьте значение даты:|date=
( справка )
Ссылки
- 2020-03-07
- 1