close
Aller au contenu

OpenRC

Un article de Wikipédia, l'encyclopédie libre.
OpenRC
Description de l'image OpenRC Logo.jpg.
Description de l'image Openrc-artix.png.
Informations
Créateur Roy Marples
Développé par OpenRC Developers
Première version
Dernière version 0.63.3[1] ()
Dépôt https://github.com/OpenRC/openrc
Écrit en C[2]
bsh
Système d'exploitation Linux
FreeBSD
NetBSD
Taille des données ˜1,6 Mo
Type Daemon init
Licence BSD
Site web https://wiki.gentoo.org/wiki/OpenRC

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[3],[4].

Démarrage d'Artix Linux avec OpenRC.
Processus de démarrage.

OpenRC est le système d'initialisation ou le superviseur de processus (en) par défaut pour :

OpenRC est disponible en tant que système d'initialisation ou superviseur de processus (en) pour :

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[2], 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[10].

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[11]. 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[12].

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[13] et s6[14].

Caractéristiques

[modifier | modifier le code]
  • 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[15]
  • 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[16]

Références

[modifier | modifier le code]
  1. (en) « Release 0.63.3 », sur GitHub, (consulté le )
  2. 1 2 (en) « openrc » [archive du ], sur www.ohloh.net (consulté le )
  3. (en) « History », sur GitHub (consulté le )
  4. (en) « Developers », sur www.netbsd.org (consulté le )
  5. (en) « OpenRC - Alpine Linux », sur wiki.alpinelinux.org (consulté le )
  6. (en) « Devuan ASCII 2.0.0 stable release », sur www.devuan.org (consulté le )
  7. (en) « OpenRC - ArchWiki », sur wiki.archlinux.org (consulté le )
  8. (en) « Adding systemd for PostmarketOS », sur postmarketos.org (consulté le )
  9. (en) « OpenRC - Debian Wiki », sur wiki.debian.org (consulté le )
  10. (en) « user guide », sur GitHub (consulté le )
  11. (en) « service script guide », sur GitHub (consulté le )
  12. (en) « OpenRC/openrc-init », sur wiki.gentoo.org, (consulté le )
  13. (en) « runit guide », sur GitHub (consulté le )
  14. (en) « s6 Guide », sur GitHub (consulté le )
  15. (en) « CGroups Support », sur wiki.gentoo.org (consulté le )
  16. (en) « openrc/NEWS.md », sur GitHub (consulté le )

Liens externes

[modifier | modifier le code]