GNU Shepherd, un gestionnaire de services développé par Guix

Après deux ans de la formation de la dernière version majeure, a été annoncé lorsqu'il a publié le lancement de la nouvelle version du gestionnaire de services GNU Berger 0.9 (anciennement connu sous le nom de dmd), qui est développé par les développeurs de la distribution GNU Guix comme alternative à l'initialisation SysV-init prenant en compte les dépendances du système.

Berger fournit des fonctionnalités d'espace utilisateur de manière asynchrone en tant que services, qui dans Shepherd sont des fonctions génériques et des types de données d'objet qui sont exportés pour être utilisés par Shepherd afin d'étendre le système d'exploitation de base d'une manière définie. Contrairement à systemd, un processus de surveillance de l'espace utilisateur s'exécute sous cet utilisateur.

À propos de Berger

Au cœur du modèle Shepherd d'initialisation de l'espace utilisateur se trouve le concept d'extension, une forme de composabilité dans laquelle les services sont conçus pour se superposer à d'autres services, en les augmentant avec un comportement plus élaboré ou spécialisé selon les besoins. Cela exprime les relations de dépendance basées sur l'instanciation trouvées dans de nombreux systèmes de démarrage modernes, qui rend le système modulaire, mais permet également aux services d'interagir de manière variable les uns avec les autres services arbitrairement.

Berger fournit également des services dits virtuels qui permettent une répartition dynamique sur une classe d'objets de service associés, tels que ceux qui instancient un agent de transfert de courrier (MTA) pour le système.

Un système gouverné par le démon Shepherd peut représenter son espace utilisateur sous la forme d'un graphe acyclique dirigé, avec le "service système" (responsable des premières phases de démarrage et de démarrage) en tant que root et tous les services initialisés ultérieurs en tant qu'extensions de la fonctionnalité du service système. , directement ou transitivement sur d'autres services.

Être écrit et configuré dans Guile Scheme, GNU Shepherd est conçu pour être hautement programmable par l'administrateur système, mais peut également être utilisé pour gérer les profils par utilisateur des démons et services non privilégiés.

Vos services et paramètres sont stockés de manière uniforme sous forme de code Scheme orienté objet et bien qu'un ensemble de services de base soit fourni avec le système Guix de base, de nouveaux services arbitraires peuvent être déclarés de manière flexible et via le système objet de Guile, GOOPS, les services existants peuvent être redéfinis à la discrétion de l'utilisateur en demandant à Shepherd de réécrire dynamiquement les services dans manières spécifiques sur l'instanciation.

GNU Shepherd a été conçu à l'origine pour fonctionner avec GNU Hurd et a ensuite été adopté par le système Guix.

Principales nouveautés de GNU Shepherd 0.9

Dans cette nouvelle version qui est présentée, il est mis en évidence que le concept de services temporaires est mis en œuvre (transitoires), qui sont automatiquement déconnectées après l'arrêt en raison de l'arrêt du processus ou de l'appel de la méthode "stop", qui peuvent être nécessaires pour les services synthétisés qui ne peuvent pas être redémarrés après l'arrêt.

Un autre des changements qui se démarque est pour les services sans le paramètre ""#:log-file", la sortie vers syslog est fournie et pour les services avec le paramètre "#:log-file", le journal est écrit dans un fichier séparé indiquant l'heure des journaux dans le processus Shepherd non privilégié qui est stocké dans le répertoire $XDG_DATA_DIR.

De plus, il est à noter que la procédure "make-inetd-constructor" a été ajoutée pour créer des services similaires à inetd et que la procédure "make-systemd-constructor" a été ajoutée pour créer des services qui sont activés dans l'activité réseau (style systemd socket Activation).

Des autres changements qui se démarquent de cette nouvelle version:

  • Ajout d'une procédure pour démarrer le service en arrière-plan :
  • Ajout des paramètres ":supplementary-groups", "#:create-session" et "#:resource-limits" à la procédure "make-forkexec-constructor".
  • Fonctionnement sans verrouillage garanti en attendant les fichiers PID.
  • Suppression de la prise en charge de la compilation avec Guile 2.0. Correction de problèmes lors de l'utilisation des versions 3.0.5-3.0.7 de Guile.
  • La bibliothèque de fibres 1.1.0 ou ultérieure est désormais requise pour fonctionner.
  • Documentation et exemples améliorés
  • Shepherd ne peut plus être construit avec Guile 2.0
  • Correction du bogue du compilateur Guile 3.0.[5-7]
  • Traductions mises à jour

Enfin si vous souhaitez en savoir plus ou vous souhaitez obtenir cette nouvelle version, vous pouvez consulter les détails, la documentation et télécharger sur le lien suivant.


Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.