Sortie du système d'initialisation GNU Shepherd 0.9.2

Le gestionnaire de services GNU Shepherd 0.9.2 (anciennement dmd) a été publié, qui est développé par les développeurs de la distribution GNU Guix System comme alternative au système d'initialisation SysV-init qui prend en charge les dépendances. Le démon de contrôle Shepherd et les utilitaires sont écrits dans le langage Guile (une des implémentations du langage Scheme), qui est également utilisé pour définir les paramètres de lancement des services. Shepherd est déjà utilisé dans la distribution GuixSD GNU/Linux et est également destiné à être utilisé dans GNU/Hurd, mais peut fonctionner sur n'importe quel système d'exploitation compatible POSIX pour lequel le langage Guile est disponible.

Shepherd effectue le travail de démarrage et d'arrêt des services en prenant en compte les relations entre les services, en identifiant et en démarrant dynamiquement les services dont dépend le service sélectionné. Shepherd prend également en charge la détection des conflits entre les services et les empêche de s'exécuter simultanément. Le projet peut être utilisé à la fois comme système d'initialisation principal (init avec PID 1) et sous une forme distincte pour gérer les processus en arrière-plan d'utilisateurs individuels (par exemple, pour exécuter tor, privoxy, mcron, etc.) avec exécution avec les droits de ces utilisateurs.

Parmi les changements :

  • Les descripteurs de fichiers utilisés dans Shepherd sont désormais marqués avec l'indicateur O_CLOEXEC (close-on-exec) plutôt que d'être fermés immédiatement lorsqu'une commande exec est exécutée, permettant de transmettre des handles aux services démarrés indirectement par une commande exec.
  • Les connexions client sont désormais traitées de manière non bloquante, ce qui empêche Shepherd de se bloquer lors de l'envoi d'une commande incomplète.
  • Garantit qu'un répertoire est créé pour les fichiers journaux définis dans le paramètre « log-file » s'il n'existe pas.

Source: opennet.ru

Ajouter un commentaire