Generated by DeepSeek V3.2| OpenRC | |
|---|---|
| Name | OpenRC |
| Developer | Roy Marples, OpenRC Team |
| Released | 11 February 2007 |
| Latest release version | 0.52.1 |
| Latest release date | 15 October 2024 |
| Programming language | C, Shell script |
| Operating system | Unix-like |
| Genre | Init system, Service manager |
| License | BSD 2-Clause |
| Website | https://github.com/OpenRC/openrc |
OpenRC. It is a Unix-like init system and service manager used to bootstrap an operating system, control system services, and manage daemons. Originally created for Gentoo Linux and FreeBSD, it is designed to be portable, fast, and dependency-driven while remaining independent from a specific Linux kernel or core system. As a BSD-licensed project, it provides a flexible alternative to systems like systemd and SysVinit, integrating with various distributions and BSD variants.
OpenRC functions as a dynamic init system that starts the essential user space after the Linux kernel hands over control during the boot process. It is not a direct replacement for the traditional SysVinit but can work alongside it or other init systems, providing enhanced service management. The project emphasizes simplicity, speed, and correctness, adhering to the Unix philosophy of modular design. Its development is closely associated with Gentoo Linux, where it became the default init system, and it has seen significant adoption within the Alpine Linux distribution, which is popular for Docker containers and embedded systems.
The architecture of OpenRC is modular and relies on shell scripts for service definitions, written primarily in C for core components to ensure performance. Key features include parallelized startup of system services, dependency-based ordering, and comprehensive runlevel support, which are concepts inherited from SysVinit. It integrates with the Linux kernel's cgroups for process tracking and can utilize udev for hardware event management, though it remains agnostic to specific hardware abstraction layers. A distinctive component is its optional integration with init.d scripts, providing compatibility with traditional Unix administration practices.
Administrators configure OpenRC through files located in `/etc/init.d/` and `/etc/conf.d/` directories, where service scripts and their specific variables are defined. The primary command-line tool for management is `rc-service`, used to control individual daemons, while `rc-update` manages service dependencies and runlevel assignments. The system supports LSB-style headers in init scripts for compatibility and can generate dependency information automatically. For network configuration, it often pairs with tools like Netifrc on Gentoo Linux or BusyBox's utilities on Alpine Linux, and it can work with various logging daemons such as syslog-ng or metalod.
OpenRC is the default init system for Gentoo Linux, Alpine Linux, Artix Linux, and Hyperbola GNU/Linux-libre, and it is available as an option for Devuan, Void Linux, and FreeBSD. Its lightweight nature has made it a favored choice for embedded environments, containerized deployments using Docker or Podman, and specialized distributions like KISS Linux. The system maintains broad compatibility with BSD init systems, traditional SysVinit scripts, and can coexist with parts of systemd through projects like elogind for session tracking. This portability has led to its use on non-Linux platforms, including certain BSD/OS derivatives.
The project was initiated by Roy Marples in 2007 to provide a modern, portable init system for NetBSD, later expanding to Gentoo Linux and other Unix-like operating systems. Major development milestones include the introduction of cgroups support, the separation of the core `rc` suite from Gentoo Linux's base system, and the establishment of a dedicated OpenRC Team for maintenance. The codebase is hosted on GitHub, where it follows a rapid release cycle, and it is distributed under the permissive BSD 2-Clause License. Ongoing development focuses on improving performance, enhancing security features like sandboxing, and maintaining compatibility with emerging Linux kernel features and alternative service managers.
Category:Init daemons Category:Free software programmed in C Category:Software using the BSD license Category:2007 software