OpenRC est un système d'initialisation basé sur les dépendances pour les systèmes d'exploitation de type Unix. Il a été créé par Roy Marples, un développeur NetBSD également actif au sein du projet Gentoo.
Usage vignette|Démarrage d'Artix Linux avec OpenRC. vignette|Processus de démarrage. OpenRC est le système d'initialisation ou le par défaut pour : Alpine Linux ArchBang Calculate Linux Funtoo Gentoo Linux Hyperbola GNU/Linux-libre Maemo Leste Nitrux
OpenRC est disponible en tant que système d'initialisation ou pour :
Devuan Parabola GNU/Linux-libre Arch Linux (disponible via l') postmarketOS Debian
Apparence OpenRC se compose de plusieurs composants modulaires, les principaux étant un système d'initialisation (optionnel), le système central de gestion des dépendances et un superviseur de démons (optionnel). Il est écrit en C et en shell compatible POSIX, ce qui le rend utilisable sur les systèmes BSD et Linux.
Le cœur d'OpenRC gère la dépendance et l'analyse des scripts d'initialisation. OpenRC fonctionne en parcourant les niveaux d'exécution (runlevels), en construisant un graphe de dépendances, puis en lançant les scripts de service nécessaires. Il se termine une fois les scripts lancés. Par défaut, OpenRC utilise une version modifiée de start-stop-daemon pour la gestion des démons.
Les scripts d'initialisation présentent des similitudes avec ceux utilisés dans sysvinit, mais offrent plusieurs fonctionnalités pour en simplifier la création. Les scripts sont censés inclure les fonctions start(), stop() et status(). Le système utilise des variables déjà déclarées pour générer les fonctions par défaut. La fonction depend est utilisée pour déclarer les dépendances envers d'autres services, une tâche qui, sous sysvinit, s'effectuait via des en-têtes LSB. La configuration et le mécanisme sont dissociés : les fichiers de configuration se trouvent dans le répertoire conf.d et les scripts d'initialisation dans le répertoire init.d.
openrc-init est apparu pour la première fois dans la version 0.25 en tant que remplaçant optionnel de /sbin/init. Il peut se substituer à sysvinit, le système d'initialisation par défaut de Gentoo Linux.
Supervise-daemon est apparu dans la version 0.21, dotant OpenRC de capacités de supervision. Il peut être activé dans le script d'initialisation pour lancer et surveiller un démon. D'autres superviseurs de démons sont également pris en charge, notamment runit et s6.
Caractéristiques Portable entre Linux, FreeBSD et NetBSD Démarrage parallèle des services (désactivé par défaut) Démarrage basé sur les dépendances Isolation des processus via les cgroups Limites de ressources par service (ulimit) Séparation du code et de la configuration (init.d / conf.d) Scripts de démarrage extensibles Scripts d'initialisation à gestion d'état (le service a-t-il déjà démarré ?) Scripts d'initialisation complexes pour démarrer plusieurs composants (Samba [smbd et nmbd], NFS [nfsd, portmap, etc.]) Calcul automatique des dépendances et ordonnancement des services Architecture modulaire et séparation des composants optionnels (cron, syslog) Gestion réseau expressive et flexible (incluant VPN, ponts, etc.) Mode de débogage détaillé (verbose) Services utilisateur
Références
Liens externes
Catégorie:Logiciel libre sous licence BSD