- Source: OpenRC
OpenRC is a dependency-based init system for Unix-like computer operating systems. It was created by Roy Marples, a NetBSD developer who was also active in the Gentoo project. It became more broadly adopted as an init system outside of Gentoo following the decision by some Linux distributions not to adopt systemd.
Adoption
OpenRC is the default init system and/or process supervisor for:
Alpine Linux
Funtoo
Gentoo Linux
Hyperbola GNU/Linux-libre
Maemo Leste
Nitrux
OpenRC is an available init system and/or process supervisor for:
Artix Linux (some consider it the default)
Devuan
Parabola GNU/Linux-libre
Design
OpenRC is made up of several modular components, the main ones being an init (optional), the core dependency management system and a daemon supervisor (optional). It is written in C and POSIX-compliant shell, making it usable on BSD and Linux systems.
The core part of OpenRC handles dependency management and init script parsing. OpenRC works by scanning the runlevels, building a dependency graph, then starting the needed service scripts. It exits once the scripts have been started. By default, OpenRC uses a modified version of start-stop-daemon for daemon management.
Init scripts share similarities with scripts used in sysvinit, but offer several features to simplify their creation. Scripts are assumed to have start(), stop() and status(); and the system uses variables already declared to create the default functions. The depend function is used to declare dependencies to other services that would be done with LSB headers in sysvinit. Configuration and mechanism are separated with configuration files in the conf.d directory and init files in the init.d directory.
Openrc-init first appeared in version 0.25 as an optional replacement for /sbin/init. This can replace Gentoo Linux's default init system, sysvinit.
Supervise-daemon first appeared in version 0.21 giving OpenRC supervision capabilities. It can be enabled in the init script for supervise-daemon to start and monitor a daemon. Several other daemon supervisors are supported, including runit and s6.
Features
Portable between Linux, FreeBSD, and NetBSD
Parallel service startup (off by default)
Dependency-based boot-up
Process segregation through cgroups
Per-service resource limits (ulimit)
Separation of code and configuration (init.d / conf.d)
Extensible startup scripts
Stateful init scripts (has it started already?)
Complex init scripts to start multiple components (Samba [smbd and nmbd], NFS [nfsd, portmap, etc.])
Automatic dependency calculation and service ordering
Modular architecture and separation of optional components (cron, syslog)
Expressive and flexible network handling (including VPN, bridges, etc.)
Verbose debug mode
References
Kata Kunci Pencarian:
- Sabayon Linux
- Systemd
- Alpine Linux
- Daftar distribusi Linux
- OpenRC
- Artix Linux
- Alpine Linux
- Devuan
- PacBSD
- Security-focused operating system
- TrueOS
- Init
- Linux kernel
- Linux distribution