Suivant: , Monter: Définir des services   [Table des matières][Index]


8.17.1 Composition de services

Ici nous définissons un service comme étant, assez largement, quelque chose qui étend la fonctionnalité d’un système d’exploitation. Souvent un service est un processus — un démon — démarré lorsque le système démarre : un serveur ssh, un serveur web, le démon de construction de Guix, etc. Parfois un service est un démon dont l’exécution peut être déclenchée par un autre démon — p. ex. un serveur FTP démarré par inetd ou un service D-Bus activé par dbus-daemon. Parfois, un service ne correspond pas à un démon. Par exemple, le service « de comptes » récupère la liste des comptes utilisateurs et s’assure qu’ils existent bien lorsque le système est lancé ; le service « udev » récupère les règles de gestion des périphériques et les rend disponible au démon eudev ; le service /etc rempli le répertoire /etc du système.

Les services de Guix sont connectés par des extensions. Par exemple, le service ssh étend le Shepherd — le système d’initialisation de GuixSD, qui tourne en tant que PID 1 — en lui donnant les lignes de commande pour démarrer et arrêter le démon ssh (voir lsh-service) ; le service UPower étend le service D-Bus en lui passant sa spécification .service et étend le service udev en lui passant des règles de gestion de périphériques (voir upower-service) ; le démon Guix étend le Shepherd en lui passant les lignes de commande pour démarrer et arrêter le démon et étend le service de comptes en lui passant une liste des comptes utilisateurs de constructions requis (voir Services de base).

En définitive, les services et leurs relation « d’extensions » forment un graphe orienté acyclique (DAG). Si nous représentons les services comme des boîtes et les extensions comme des flèches, un système typique pourrait fournir quelque chose comme cela :

Graphe d’extension des services typique.

En bas, on voit le service système qui produit le répertoire contenant tout et lançant et démarrant le système, renvoyé par la commande guix system build. Voir Référence de service, pour apprendre les autres types de services montrés ici. Voir the guix system extension-graph command, pour plus d’informations sur la manière de générer cette représentation pour une définition de système d’exploitation particulière.

Techniquement, on peut définir des types de services pour exprimer ces relations. Il peut y avoir n’importe quel quantité de services d’un type donné sur le système — par exemple, un système sur lequel tournent deux instances du serveur ssh de GNU (lsh) a deux instance de lsh-service-type, avec des paramètres différents.

La section suivante décrit l’interface de programmation des types de services et des services.


Suivant: , Monter: Définir des services   [Table des matières][Index]