La version 0.7.0.0 du gestionnaire de services s6-rc est disponible. Conçu pour gérer le lancement des scripts d'initialisation et des services, il prend en charge le suivi des dépendances et le démarrage ou l'arrêt automatique des services pour atteindre un état spécifié. La boîte à outils s6-rc peut être utilisée aussi bien dans les systèmes d'initialisation que pour organiser le lancement de services arbitraires en fonction d'événements reflétant les changements d'état du système. Le système prend en charge les scripts d'initialisation compatibles avec sysv-init et peut importer les informations de dépendance depuis sysv-rc ou OpenRC. Le code est écrit en C et distribué sous licence ISC.
Le gestionnaire de services s6-rc comprend un ensemble d'utilitaires permettant de démarrer et d'arrêter des processus de longue durée (démons) ou des scripts d'initialisation immédiatement terminés. Pendant le fonctionnement, le lancement parallèle de services non croisés est assuré et une séquence répétitive d'exécution de script est garantie pour différents lancements. Tous les changements d'état sont traités en tenant compte des dépendances, par exemple, lorsqu'un service est lancé, les dépendances nécessaires à son fonctionnement seront automatiquement lancées, et lorsqu'il est arrêté, les services dépendants seront également arrêtés.
Contrairement à d'autres gestionnaires de services, s6-rc prend en charge la construction proactive (hors ligne) d'un graphique de dépendances pour un ensemble de services existant, ce qui permet d'effectuer une analyse de dépendance gourmande en ressources séparément, plutôt que pendant le démarrage ou les changements d'état. En même temps, le système n'est pas monolithique et est divisé en une série de modules séparés et remplaçables, dont chacun, conformément à la philosophie Unix, résout uniquement une tâche spécifique. Le projet s6-rc adhère à la philosophie du minimalisme (ne contient rien d'inutile) et consomme un minimum de ressources.
Au lieu des niveaux d'exécution, s6-rc utilise le concept de groupes, permettant de regrouper les services selon des critères et des tâches arbitraires. Pour une efficacité accrue, une base de données de dépendances compilée est utilisée ; elle est créée par l'utilitaire s6-rc-compile à partir du contenu des répertoires contenant les fichiers de démarrage/arrêt des services. Les utilitaires s6-rc-db et s6-rc-update permettent d'analyser et de manipuler cette base de données. La chaîne d'outils s6 est utilisée dans les distributions Obarun, Adelie et Artix, et peut également être utilisée, en option, dans Gentoo, Void et Alpine.
Le projet développe également des packages complémentaires à s6-rc :
- s6 est un utilitaire de surveillance et de gestion des processus (semblable à daemontools et runit). Il prend en charge des fonctionnalités telles que le redémarrage des processus après leur arrêt anormal, le lancement d'un gestionnaire (activation de service) lors de l'accès à un port réseau, la journalisation des événements (en remplacement de syslogd) et l'octroi contrôlé de privilèges supplémentaires (semblable à sudo).
- s6-linux-init — une implémentation du processus d'initialisation pour les systèmes d'exploitation à noyau. Linux, utilisé pour créer des systèmes d'initialisation qui utilisent les packages s6 et s6-rc pour gérer les services et les scripts.
- s6-networking est un ensemble d'utilitaires permettant de créer des services réseau, similaires à ucspi.
- s6-frontend - un framework pour recréer les fonctionnalités de daemontools et runit au-dessus de s6.
- s6-portable-utils est un ensemble d'utilitaires Unix standard tels que cut, chmod, ls, sort et grep, optimisés pour une consommation minimale de ressources et fournis sous la licence ISC.
- s6-linux-utils - un ensemble d'utilitaires liés à Linuxtels que chroot, freeramdisk, logwatch, mount et swapon.
- mdevd est un gestionnaire d'événements (similaire à udevd) conçu pour gérer le branchement à chaud des périphériques. mdevd est compatible en termes de configuration avec mdev de Busybox.
- bcnm est un configurateur de réseau permettant de configurer le Wi-Fi côté client.
- Execline est un langage de script.
- skalibs est une bibliothèque permettant de créer des applications système sécurisées en langage C.
- s6-dns est un ensemble de bibliothèques et d'utilitaires client qui remplacent les utilitaires DNS standard de BIND et djbdns.
- dnsfunnel - redirige les requêtes DNS locales vers un serveur DNS externe serveur (Serveur DNS).
- Shibari est un serveur DNS simple.
- tipidee est un serveur HTTP compatible avec HTTP/1.1.
Dans la nouvelle version de s6-rc et des utilitaires associés :
- La commande « s6-rc reload » a été implémentée pour redémarrer les services de longue durée.
- Ajout d'un fichier de contrôle du signal de rechargement qui définit le signal envoyé au processus pour redémarrer (par défaut : SIGHUP).
- L'utilitaire s6-rc-bundle a été supprimé ; la modification des bundles sans recompilation n'est plus prise en charge.
- Un nouveau format pour la base de données interne a été proposé (la mise à jour nécessite une recompilation et l'exécution de l'utilitaire s6-rc-format-upgrade).
- La gestion correcte de la situation de redémarrage de l'utilitaire s6-rc-init pour l'initialisation du service a été assurée, et la gestion des pannes du système a été améliorée.
- L'utilitaire s6-rc-set-change a été mis à jour avec les options suivantes : -I/-i pour afficher un avertissement ou échouer avec une erreur lorsqu'une dépendance conflictuelle est détectée ; -P/-p pour désactiver/activer la résolution automatique des conflits de dépendance lorsque les états de service changent.
- L'option « -f » obsolète a été supprimée.
- L'utilitaire s6 dispose désormais de la commande s6-svscanboot pour rediriger les journaux du superviseur s6-svscan vers s6-log lorsqu'il ne s'exécute pas sous le PID 1.
- J'ai implémenté l'option « s6-svc -l » pour envoyer un signal de redémarrage.
- L'interface utilisateur s6-frontend prend désormais en charge les options et commandes suivantes : « s6 --user » (pour travailler avec les services utilisateur), « s6 live reset », « s6 apply », « s6 enable|disable|start|stop|kill|apply », « s6 live stop --clean ».
- Le serveur HTTP tipidee prend désormais en charge FastCGI et ajoute l'option cgi_pass_authorization.
Source: opennet.ru
