Système d'initialisation Finit 4.0 disponible

Après environ trois ans de développement, la version du système d'initialisation Finit 4.0 (Fast init) a été publiée, développée comme une alternative simple à SysV init et systemd. Le projet est basé sur des développements créés par rétro-ingénierie du système d'initialisation fastinit utilisé dans le firmware Linux des netbooks EeePC et remarquable pour son processus de démarrage très rapide. Le système est principalement destiné au démarrage de systèmes compacts et embarqués, mais peut également être utilisé pour des environnements de bureau et de serveur conventionnels. Des exemples de scripts d'implémentation ont été préparés pour Void Linux, Alpine Linux et Debian GNU/Linux. Le code du projet est écrit en C et est distribué sous licence MIT.

Finit prend en charge les niveaux d'exécution dans le style d'initialisation SysV, surveillant la santé des processus en arrière-plan (redémarrage automatique du service en cas d'échec), exécutant des gestionnaires uniques, lançant des services en tenant compte des dépendances et des conditions arbitraires, attachant des gestionnaires supplémentaires à exécuter avant ou après exécution des services. Par exemple, vous pouvez configurer un service pour qu'il démarre uniquement une fois que l'accès au réseau est disponible ou après le démarrage d'un autre service, tel que syslogd. Cgroups v2 est utilisé pour définir des restrictions.

Pour étendre les fonctionnalités et s'adapter à vos besoins, des plugins peuvent être utilisés, pour lesquels un système de hooks est fourni qui vous permet d'attacher un gestionnaire à différentes étapes de chargement et d'exécution des services, ainsi que de fournir une liaison avec des événements externes. Par exemple, des plugins ont été préparés pour prendre en charge D-Bus, ALSA, netlink, resolvconf, le branchement à chaud de périphériques, la vérification de la disponibilité et le chargement des modules du noyau, le traitement des fichiers PID et la configuration de l'environnement pour le serveur X.

L'utilisation de scripts standard pour lancer les services créés pour SysV init est prise en charge (/etc/rc.d et /etc/init.d ne sont pas utilisés, mais la prise en charge de /etc/inittab peut être implémentée via le plugin), ainsi que Scripts rc.local, fichiers avec variables d'environnement et de paramètres réseau /etc/network/interfaces, comme dans Debian et BusyBox. Les paramètres peuvent être définis dans un fichier de configuration /etc/finit.conf ou répartis sur plusieurs fichiers dans le répertoire /etc/finit.d.

La gestion s'effectue via les outils standards initctl et run-parts, qui permettent d'activer et de désactiver les services en fonction des niveaux d'exécution, ainsi que de lancer sélectivement certains services. Finit comprend également une implémentation getty intégrée (gestion du terminal et des connexions utilisateur), un chien de garde pour la surveillance de l'état et un mode de récupération après incident avec sulogin intégré pour exécuter un shell de commande isolé.

Système d'initialisation Finit 4.0 disponible

Parmi les modifications ajoutées dans la version Finit 4.0 (la version 3.2 a été ignorée en raison de modifications qui ont rompu la compatibilité ascendante) :

  • L'utilitaire de redémarrage distinct a été remplacé par un lien symbolique vers initctl, similaire aux utilitaires d'arrêt, d'arrêt, de mise hors tension et de suspension.
  • Une indication de l'avancement des opérations a été mise en place.
  • Le fonctionnement des commandes « inctl cond set|clear COND » a été modifié pour lier les actions à divers événements. La syntaxe utilisée pour identifier les services est au lieu de se lier aux chemins .
  • L'implémentation intégrée du serveur inetd a été supprimée, où xinetd peut être installé si nécessaire.
  • Ajout de la prise en charge des groupes de contrôle v2 pour exécuter des services dans des groupes de contrôle distincts.
  • Ajout du mode de récupération après crash avec son propre suslogin.
  • Ajout de la prise en charge des scripts de démarrage/arrêt à partir de l'initialisation SysV.
  • Ajout des gestionnaires pre:script et post:script qui vous permettent de spécifier vos actions effectuées avant ou au démarrage du service.
  • Ajout de la prise en charge d'env:file avec des variables d'environnement.
  • Ajout de la possibilité de suivre des fichiers PID arbitraires.
  • Ajout de la possibilité de lancer des tâches et des services à l'aide de chemins relatifs.
  • Ajout de l'option "-b" à initctl pour effectuer des actions en mode non interactif (mode batch).
  • Le chien de garde intégré a été remplacé par une version distincte de watchdogd.
  • Ajout d'un plugin pour charger automatiquement les modules du noyau pour les appareils connectés pendant le fonctionnement.
  • Ajout d'un plugin pour gérer /etc/modules-load.d/.
  • Ajout de la prise en charge du redémarrage automatique des services après avoir modifié les paramètres, vous permettant de vous passer de l'exécution manuelle de la commande « initctl reload ». Désactivé par défaut et nécessite une reconstruction avec "./configure --enable-auto-reload".
  • Ajout de la possibilité de consigner les opérations qui affectent la sécurité, telles que la modification du niveau d'exécution, le démarrage et l'arrêt des services et les échecs de services.
  • Prise en charge améliorée de /etc/network/interfaces.

    Source: opennet.ru

Ajouter un commentaire