Jump to content

OpenRC

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 2001:16b8:2ce3:6500:c4ba:160b:323d:9ab (talk) at 19:08, 19 September 2019. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

OpenRC
Original author(s)Roy Marples
Developer(s)OpenRC Developers
Initial release5 April 2007; 17 years ago (2007-04-05)
Stable release
0.42.1 / 20 August 2019; 4 years ago (2019-08-20)[1]
Repository
Written inC[2]
Operating systemLinux, FreeBSD, NetBSD, TrueOS
Size~900 KB
TypeInit daemon
License2-clause BSD license
Websitewww.gentoo.org/proj/en/base/openrc/

On Unix-like systems, OpenRC is a dependency-based init - the first process started during booting of the computer system.

Since 0.25 OpenRC includes openrc-init, which can replace /sbin/init, but the default provider for the init program is SysVinit for OpenRC. As well as Linux, OpenRC can also be used on several BSD systems. It was created by a NetBSD developer, who started the Gentoo/FreeBSD project.

OpenRC is the default init system of TrueOS[3], Gentoo, Alpine Linux, Hyperbola GNU/Linux-libre, Parabola GNU/Linux-libre, Artix Linux, Maemo Leste and other unix-like systems, while some others such as Devuan offer it as an option.[4] That means that the software packages and daemons of those systems/distributions support it, coming with or using the available scripts.

OpenRC provides the following features:

  • Portable between Linux, TrueOS, FreeBSD, and NetBSD
  • Parallel service startup (optional, in development)[5]
  • Dependency based boot-up
  • Process segregation through cgroups
  • Per-service resource limits (ulimit)
  • Separation of code and configuration (init.d / conf.d)
  • Easily extensible startup scripts customizable by users
  • Ability to include an unlimited variety of commands beyond basic "start, stop, and status"
  • Stateful init scripts (is it started already?)
  • Complex init scripts to start multiple components (Samba (smbd and nmbd), NFS (nfsd, portmap, etc.))
  • Automatic dependency calculation and service ordering
  • Proper integration into container/virtualization (Linux-VServer, OpenVZ, etc.)[6]
  • Proper modular architecture and separation of optional components (Cron, syslog)
  • Expressive and flexible network handling (including VPN, bridges, etc.)
  • Support for bare-metal bare-dependency servers[7][8]
  • Verbose debug mode

References

  1. ^ "openrc-0.42.1". Retrieved September 19, 2019.
  2. ^ "openrc", Analysis Summary, Ohloh, retrieved 2012-03-10
  3. ^ "4. Post Installation Configuration — TrueOS® User Guide". www.trueos.org. Retrieved 2017-03-12.
  4. ^ "Devuan ASCII 2.0.0 stable release". Retrieved 2018-07-17.
  5. ^ Parallel startup in OpenRC was disabled by default due to bug 391945 (boot can hang when rc_parallel=yes)
  6. ^ OpenRC
  7. ^ gentoo-embedded post, 29 Jul 2011
  8. ^ Using Mdev on Gentoo

External links