OpenRC
![]() | This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
|
Original author(s) | Roy Marples |
---|---|
Developer(s) | OpenRC Developers |
Initial release | 5 April 2007 |
Stable release | 0.42.1
/ 20 August 2019[1] |
Repository | |
Written in | C[2] |
Operating system | Linux, FreeBSD, NetBSD, TrueOS |
Size | ~900 KB |
Type | Init daemon |
License | 2-clause BSD license |
Website | www |
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
- ^ "openrc-0.42.1". Retrieved September 19, 2019.
- ^ "openrc", Analysis Summary, Ohloh, retrieved 2012-03-10
- ^ "4. Post Installation Configuration — TrueOS® User Guide". www.trueos.org. Retrieved 2017-03-12.
- ^ "Devuan ASCII 2.0.0 stable release". Retrieved 2018-07-17.
- ^ Parallel startup in OpenRC was disabled by default due to bug 391945 (boot can hang when rc_parallel=yes)
- ^ OpenRC
- ^ gentoo-embedded post, 29 Jul 2011
- ^ Using Mdev on Gentoo
External links
- Official website
- OpenRC git repositories at gentoo.org and GitHub
- Init systems comparison: part 1 and part 2 (LWN.net)
- Openrc-init gentoo wiki and git commit