Sortie du système d'initialisation GNU Shepherd 0.9

Deux ans après la formation de la dernière version significative, le gestionnaire de services GNU Shepherd 0.9 (anciennement dmd) a été publié, 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.

Principales nouveautés :

  • Le concept de services temporaires (transitoires) est implémenté, automatiquement désactivés une fois terminé en raison de l'arrêt du processus ou de l'appel de la méthode « stop », qui peut être nécessaire pour les services synthétisés qui ne peuvent pas être redémarrés après l'arrêt.
  • Pour créer des services de type inetd, la procédure « make-inetd-constructor » a été ajoutée.
  • Pour créer des services qui sont activés pendant l'activité réseau (dans le style d'activation du socket systemd), la procédure « make-systemd-constructor » a été ajoutée.
  • Ajout d'une procédure pour démarrer un service en arrière-plan - « démarrage en arrière-plan ».
  • Ajout des paramètres ":supplementary-groups", "#:create-session" et "#:resource-limits" à la procédure "make-forkexec-constructor".
  • Fonctionnement activé sans blocage en attendant les fichiers PID.
  • 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 enregistrements. Les journaux du processus Shepherd non privilégié sont stockés dans le répertoire $XDG_DATA_DIR.
  • La prise en charge de la construction avec Guile 2.0 a été interrompue. Les problèmes lors de l'utilisation des versions 3.0.5-3.0.7 de Guile ont été résolus.
  • La bibliothèque Fibers 1.1.0 ou plus récente est désormais requise pour fonctionner.

Source: opennet.ru

Ajouter un commentaire