OpenRC is a dependency-based init system working with the system provided init program. It is used with several Linux distributions, including Gentoo and Alpine Linux. However, OpenRC was created by the NetBSD developer Roy Marples in one of those interesting intersections of Linux and BSD development. OpenRC’s development history, portability, and 2-clause BSD license make its integration into TrueOS an easy decision.
What’s different with OpenRC?
TrueOS now uses OpenRC to manage all system services, as opposed to FreeBSD’s RC. Instead of using rc.d for base system rc scripts, OpenRC uses init.d. Also, every service in OpenRC has its own user configuration file, located in /etc/conf.d/ for the base system and /usr/local/etc.conf.d/ for ports. Finally, OpenRC uses runlevels, as opposed to the FreeBSD single- or multi- user modes. You can view the services and their runlevels by typing $ rc-update show -v in a CLI. Also, TrueOS integrates OpenRC service management into SysAdm with the Service Manager tool:
The service manager really simplifies, well, service management. SysAdm automatically detects and populates the list with the system’s services, and provides toggles to start, stop, and restart any service. You can even adjust which services start on boot with the power button icons in the lower-right of the screen.
What’s the benefit of OpenRC?
With OpenRC, TrueOS boot times have been reduced from generally over 1 minute to around 10 seconds. The organization of service config files lends itself to simpler manipulation of individual services. OpenRC also provides more reliable service status by using the start-stop-daemon or the built-in supervisor. So, TrueOS now starts faster, is more/differently organized, and is more reliable.
Is OpenRC integration complete?
OpenRC integration is a continuing process. One element of integrating OpenRC into TrueOS is porting FreeBSD services into the proper OpenRC format. While the most frequently used services are integrated now, many more services still need porting and testing. Thankfully, the TrueOS community is more than a match for the challenge. Many users contribute service ports and test existing services, greatly enhancing OpenRC’s effectiveness. If you want to help with this task, or just want to know more about the TrueOS implementation of OpenRC, I recommend reviewing the OpenRC documentation in the TrueOS handbook, browsing through the various OpenRC discussion topics on the TrueOS Discourse forum, and conversing with the developers and friendly community in the Gitter channel.