Lanzamiento del administrador de servicios s6-rc 0.5.3.0 y del sistema de inicialización s6-linux-init 1.0.7

Se ha preparado una versión importante del administrador de servicios s6-rc 0.5.3.0, diseñada para gestionar el lanzamiento de scripts y servicios de inicialización, teniendo en cuenta las dependencias. El kit de herramientas s6-rc se puede utilizar tanto en sistemas de inicialización como para organizar el lanzamiento de servicios arbitrarios en relación con eventos que reflejan cambios en el estado del sistema. Proporciona seguimiento completo del árbol de dependencias e inicio o cierre automático de servicios para alcanzar un estado específico. El código está escrito en C y se distribuye bajo la licencia ISC.

El administrador de servicios s6-rc, que puede considerarse un análogo de sysv-rc u OpenRC, incluye un conjunto de utilidades para iniciar y detener procesos de larga duración (daemons) o scripts de inicialización terminados inmediatamente. Durante el trabajo, se tienen en cuenta las dependencias entre componentes, se garantiza el lanzamiento paralelo de scripts y servicios que no se cruzan entre sí y se garantiza que la secuencia de ejecución de los scripts se repetirá en diferentes lanzamientos. Todos los cambios de estado se procesan teniendo en cuenta las dependencias, asegurándose de que no se violen las dependencias (por ejemplo, cuando se inicia un servicio, se iniciarán automáticamente las dependencias necesarias para su funcionamiento y, cuando se detenga, también se detendrán los servicios dependientes).

En lugar de niveles de ejecución, s6-rc ofrece un concepto de paquetes más universal, que le permite agrupar servicios según características arbitrarias y tareas a resolver. Para mejorar la eficiencia del trabajo, se utiliza una base de datos de dependencias compilada, creada por la utilidad s6-rc-compile en función del contenido de los directorios con archivos para iniciar/detener servicios. Las utilidades s6-rc-db y s6-rc-update se ofrecen para analizar y manipular la base de datos. El sistema admite scripts de inicio compatibles con sysv-init y puede importar información de dependencia desde sysv-rc u OpenRC.

Entre las ventajas de s6-rc se encuentra una implementación compacta que no contiene nada superfluo excepto componentes para resolver problemas directos y consume un mínimo de recursos. A diferencia de otros administradores de servicios, s6-rc admite la construcción proactiva (fuera de línea) de un gráfico de dependencia para un conjunto de servicios existente, lo que le permite realizar análisis de dependencia con uso intensivo de recursos por separado, y no durante la carga o los cambios de estado. Al mismo tiempo, el sistema no es monolítico y está dividido en una serie de módulos separados y reemplazables, cada uno de los cuales, de acuerdo con la filosofía Unix, resuelve sólo una tarea específica.

En combinación con las utilidades s6 que monitorean el funcionamiento de los procesos (análogas a daemontools y runit), el kit de herramientas le permite monitorear simultáneamente el funcionamiento de servicios de larga duración, por ejemplo, reiniciarlos en caso de terminaciones anormales y garantizar que una secuencia de comandos se lanza de forma reproducible y se repite en diferentes inicios. Las características admitidas incluyen la activación de un servicio al acceder a un socket (iniciar un controlador al acceder a un puerto de red), registrar eventos de proceso (reemplazando syslogd) y concesión controlada de privilegios adicionales (análogo a sudo).

Al mismo tiempo, está disponible el lanzamiento del paquete s6-linux-init 1.0.7.0, que ofrece una implementación del proceso init para construir sistemas init listos para usar para sistemas operativos basados ​​​​en el kernel de Linux, en el que s6 y s6 Las utilidades -rc se utilizan para administrar servicios y scripts de inicialización. Al mismo tiempo, s6 y s6-rc no están vinculados a s6-linux-init y, si se desea, se pueden utilizar con cualquier sistema de inicialización.

Además, el proyecto proporciona:

  • s6-networking es un conjunto de utilidades para crear servicios de red, similar a ucspi.
  • s6-frontend: un marco para recrear la funcionalidad de daemontools y runit sobre s6.
  • s6-portable-utils es un conjunto de utilidades estándar de Unix como cut, chmod, ls, sort y grep, optimizadas para un consumo mínimo de recursos y suministradas bajo la licencia ISC.
  • s6-linux-utils: un conjunto de utilidades específicas de Linux, como chroot, freeramdisk, logwatch, mount y swapon.
  • s6-dns es un conjunto de bibliotecas y utilidades cliente que reemplazan las utilidades DNS estándar de BIND y djbdns.

En la nueva versión de s6-rc, la utilidad s6-rc-compile implementa la lectura de datos sobre dependencias y conjuntos de servicios de directorios, en lugar de archivos. El uso de directorios simplifica la adición de servicios a la base de datos con información sobre dependencias al instalar programas a través de un administrador de paquetes, ya que le permite prescindir de realizar cambios en los archivos. Se ha mantenido la compatibilidad con el antiguo formato basado en archivos para garantizar la compatibilidad. En la nueva versión de s6-linux-init, se agregó la opción "-S" a la utilidad s6-linux-init-maker para sincronizar datos en contenedores.

Fuente: opennet.ru

Añadir un comentario