Sistema de inicialización Finit 4.0 disponible

Después de unos tres años de desarrollo, se publicó el lanzamiento del sistema de inicialización Finit 4.0 (Fast init), desarrollado como una alternativa sencilla a SysV init y systemd. El proyecto se basa en desarrollos creados mediante ingeniería inversa del sistema de inicialización fastinit utilizado en el firmware Linux de los netbooks EeePC y que destaca por su rapidísimo proceso de arranque. El sistema está destinado principalmente al arranque de sistemas compactos e integrados, pero también se puede utilizar para entornos de servidores y escritorios convencionales. Se han preparado scripts de implementación de muestra para Void Linux, Alpine Linux y Debian GNU/Linux. El código del proyecto está escrito en C y se distribuye bajo la licencia MIT.

Finit admite niveles de ejecución en el estilo de inicio SysV, monitorea el estado de los procesos en segundo plano (reinicia automáticamente el servicio en caso de falla), ejecuta controladores únicos, inicia servicios teniendo en cuenta dependencias y condiciones arbitrarias, adjunta controladores adicionales para ejecutar antes o después. ejecución del servicio. Por ejemplo, puede configurar un servicio para que se inicie solo después de que el acceso a la red esté disponible o después de que se haya iniciado algún otro servicio, como syslogd. Cgroups v2 se utiliza para establecer restricciones.

Para ampliar la funcionalidad y adaptarse a sus necesidades, se pueden utilizar complementos, para los cuales se proporciona un sistema de ganchos que le permite adjuntar un controlador a varias etapas de carga y ejecución de servicios, así como proporcionar enlace a eventos externos. Por ejemplo, se han preparado complementos para admitir D-Bus, ALSA, netlink, resolvconf, conexión en caliente de dispositivos, verificación de la disponibilidad y carga de módulos del kernel, procesamiento de archivos PID y configuración del entorno para el servidor X.

Se admite el uso de scripts estándar para iniciar servicios creados para SysV init (/etc/rc.d y /etc/init.d no se utilizan, pero se puede implementar soporte para /etc/inittab a través del complemento), así como Scripts rc.local, archivos con variables de entorno y configuración de red /etc/network/interfaces, como en Debian y BusyBox. Las configuraciones pueden definirse en un archivo de configuración /etc/finit.conf o distribuirse en varios archivos en el directorio /etc/finit.d.

La gestión se realiza a través de las herramientas estándar initctl y run-parts, que le permiten activar y desactivar servicios en relación con los niveles de ejecución, así como iniciar selectivamente algunos servicios. Finit también incluye una implementación getty incorporada (administración de inicio de sesión de usuarios y terminales), un mecanismo de vigilancia para el monitoreo del estado y un modo de recuperación de fallas con sulogin incorporado para ejecutar un shell de comandos aislado.

Sistema de inicialización Finit 4.0 disponible

Entre los cambios agregados en la versión Finit 4.0 (la versión 3.2 se omitió debido a cambios que rompieron la compatibilidad con versiones anteriores):

  • La utilidad de reinicio separada ha sido reemplazada por un enlace simbólico a initctl, similar a las utilidades de detener, apagar, apagar y suspender.
  • Se ha implementado la indicación del progreso de las operaciones.
  • Se ha cambiado el funcionamiento de los comandos “inictl cond set|clear COND” para vincular acciones a varios eventos. La sintaxis utilizada para identificar servicios es en lugar de atarnos a los caminos .
  • Se eliminó la implementación incorporada del servidor inetd, donde se puede instalar xinetd si es necesario.
  • Se agregó soporte para cgroups v2 para ejecutar servicios en cgroups separados.
  • Se agregó el modo de recuperación de fallos con su propio suslogin.
  • Se agregó soporte para scripts de inicio/detención desde SysV init.
  • Se agregaron controladores pre:script y post:script que le permiten especificar las acciones realizadas antes o cuando se inicia el servicio.
  • Se agregó soporte para env:archivo con variables de entorno.
  • Se agregó la capacidad de rastrear archivos PID arbitrarios.
  • Se agregó la capacidad de iniciar tareas y servicios utilizando rutas relativas.
  • Se agregó la opción "-b" a initctl para realizar acciones en modo no interactivo (modo por lotes).
  • El perro guardián incorporado ha sido reemplazado por una versión separada de perro guardián.
  • Se agregó un complemento para cargar automáticamente módulos del kernel para dispositivos conectados durante la operación.
  • Se agregó un complemento para manejar /etc/modules-load.d/.
  • Se agregó soporte para reiniciar automáticamente los servicios después de cambiar la configuración, lo que le permite prescindir de ejecutar manualmente el comando "initctl reload". Está deshabilitado de forma predeterminada y requiere reconstrucción con "./configure --enable-auto-reload".
  • Se agregó la capacidad de registrar operaciones que afectan la seguridad, como cambiar el nivel de ejecución, iniciar y detener servicios y fallas de servicios.
  • Soporte mejorado para /etc/network/interfaces.

    Fuente: opennet.ru

Añadir un comentario