factograf
SR
Sign in

OpenRC

OpenRC
All data from the card 11
Original author(s)
Roy Marples
Developer(s)
OpenRC Developers
Initial release
5 April 2007
Stable release
0.45.2 / 3 July 2022
Repository
github.com/OpenRC/openrc
Written in
C, Shell
Operating system
Linux, FreeBSD, NetBSD
Size
~900 KB
Type
Init daemon
License
2-clause BSD license
Website
wiki.gentoo.org/wiki/Project:OpenRC

OpenRC је init систем који је заснован на зависности за оперативне системе рачунара који су слични Unix- у. Креирао га је Рој Марплес, NetBSD програмер који је такође био активан у Gentoo пројекту. Постао је шире прихваћен као init систем изван Gentoo пројекта након одлуке неких Линукс дистрибуција да не усвоје [1]systemd.

Усвајање

OpenRC је подразумевани [2]init систем и/или супервизор процеса за:

  • [3]Alpine Linux
  • Funtoo
  • Gentoo Linux
  • [4]Hyperbola GNU/Linux-libre
  • Maemo Leste
  • Nitrux

OpenRCје доступан [5]init систем и/или супервизор процеса за:

  • [6]Artix Linux
  • Devuan
  • [7]Parabola GNU/Linux-libre
  • Arch Linux

Дизајн

OpenRC се састоји од неколико модуларних компоненти, од којих су главне init (опционо), основни систем за управљање зависношћу и daemon супервизор (опционо). Написан је у љусци компатибилној са C и POSIX - прихватљив shell програм (Portable Operating System Interface), што га чини употребљивим на BSD и Линукс системима.

Основни део OpenRC-а се бави управљањем зависностима и рашчлањивањем init скрипте. OpenRC ради тако што скенира нивое покретања, гради графикон зависности, а затим покреће скрипте које су потребне да се изврше. Завршава се тек онда када су скрипте покренуте. OpenRC подразумевано користи модификовану верзију старт-стоп-daemon-а за управљање daemon-има.

Init скрипте своје сличности деле са скриптама које се користе у sysvinit- у, али нуде и неколико функција које служе да се њихово креирање поједностави. Претпоставља се да скрипте имају start(), stop() и status(); а систем користи променљиве које су већ декларисане да би креирао подразумеване функције. Функција зависности се користи за декларисање зависности од других услуга које би се радиле са LSB заглављима у sysvinit-у. Конфигурација и механизам су раздвојени конфигурационим датотекама у директоријуму conf.d и init датотекама у директоријуму init.d.

Openrc-init се први пут појавио у верзији 0.25 као замена за /sbin/init која није обавезна већ опциона. Подржано је неколико других покретача, укључујући sysvinit и [8]Busybox.

Надзирући-daemon се први пут појавио у верзији 0.21 дајући OpenRC могућности надзора. Може се омогућити у init скрипти за надзирућег-daemon да се покрене и надгледа daemon-а. Подржано је неколико других daemon-ских супервизора, укључујући [9]runit и [10]s6.

Карактеристике

  • Преносив између Линукс- а, FreeBSD -а и NetBSD -а
  • Покретање паралелног сервиса (подразумевано је да је искључено)
  • Покретање које је засновано на зависности
  • Процес сегрегације кроз [11]cgroups
  • Ограничења ресурса по услузи (ulimit)
  • Раздвајање кода и конфигурације (init.d / conf.d)
  • Прошириве скрипте за покретање
  • init скрипте са стањем ( да ли је већ покренута?)
  • Комплексне init скрипте за покретање више компоненти ( Самба [smbd and nmbd], NFS [nfsd, portmap, итд.])
  • Аутоматско израчунавање зависности и наручивање услуга
  • Модуларна архитектура и раздвајање опционих компоненти ( cron, syslog)
  • Експресивно и флексибилно руковање мрежом (укључујући VPN, мостове, итд.)
  • Опширни режим за отклањање грешака

Read next

In 15 languages

Text from Wikipedia, CC BY-SA 4.0 · Source article