Suivant: Types service et services, Monter: Définir des services [Table des matières][Index]
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 :
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: Types service et services, Monter: Définir des services [Table des matières][Index]