Lanzamiento del gestor de servicios s6-rc 0.7

Se ha publicado la versión del gestor de servicios s6-rc 0.7.0.0, destinado a gestionar el lanzamiento de scripts de inicialización y servicios. Se admite el seguimiento del árbol de dependencias y el inicio o la finalización automática de servicios para alcanzar el estado especificado. La herramienta s6-rc puede utilizarse tanto en sistemas de inicialización como para organizar el lanzamiento de servicios arbitrarios en respuesta a eventos que reflejan cambios en el estado del sistema. El sistema admite scripts de inicialización compatibles con sysv-init y puede importar información sobre dependencias desde sysv-rc o OpenRC. El código está escrito en C y se distribuye bajo la licencia ISC.

El gestor de servicios s6-rc incluye un conjunto de utilidades para iniciar y detener procesos en funcionamiento prolongado (daemon) o scripts de inicialización que finalizan inmediatamente. Durante su funcionamiento, se garantiza el inicio paralelo de servicios que no se superponen y se asegura una secuencia de ejecución de scripts que se repite en diferentes lanzamientos. Todos los cambios de estado se procesan teniendo en cuenta las dependencias, por ejemplo, al iniciar algún servicio se lanzarán automáticamente las dependencias necesarias para su funcionamiento, y al detenerlo se detendrán también los servicios dependientes.

A diferencia de otros gestores de servicios, s6-rc admite la construcción anticipada (en modo offline) del grafo de dependencias para el conjunto de servicios existentes, lo que permite realizar un análisis intensivo de recursos por separado, en lugar de durante el arranque o el cambio de estado. Además, el sistema no es monolítico y se divide en una serie de módulos individuales y reemplazables, cada uno de los cuales, de acuerdo con la filosofía Unix, resuelve solo una tarea específica. El proyecto s6-rc se adhiere a la filosofía del minimalismo (no contiene nada innecesario) y consume el mínimo de recursos.

En lugar de los niveles de ejecución (runlevel) en s6-rc, se propone el concepto de conjuntos (bundles), que permite agrupar servicios según criterios y tareas determinadas. Para mejorar la eficiencia, se utiliza una base de datos de dependencias compilada, creada por la herramienta s6-rc-compile a partir del contenido de los directorios con archivos para iniciar/detener servicios. Para el análisis y manipulación de la base de datos se ofrecen las herramientas s6-rc-db y s6-rc-update. El conjunto de herramientas de s6 se utiliza en las distribuciones Obarun, Adelie y Artix, y también puede aplicarse opcionalmente en Gentoo, Void y Alpine.

El proyecto también desarrolla paquetes complementarios que añaden funcionalidad a s6-rc:

  • s6 — herramientas para monitorear el funcionamiento de procesos y gestionar procesos (análogo a daemontools y runit). Se soportan características como el reinicio de procesos tras su finalización inesperada, el inicio de un controlador (activación del servicio) al acceder a un puerto de red, la journalización de eventos (sustitución de syslogd) y la concesión controlada de privilegios adicionales (análogo a sudo).
  • s6-linux-init — implementación del proceso init para sistemas operativos basados en el núcleo de Linux, utilizados para crear sistemas de inicialización donde se utilizan los paquetes s6 y s6-rc para gestionar servicios y scripts.
  • s6-networking — conjunto de utilidades para crear servicios de red, similar a ucspi.
  • s6-frontend — envoltura para recrear la funcionalidad de daemontools y runit sobre s6.
  • s6-portable-utils — conjunto de utilidades típicas de Unix, como cut, chmod, ls, sort y grep, optimizadas para consumir mínimos recursos y distribuidas bajo la licencia ISC.
  • s6-linux-utils — conjunto de utilidades vinculadas a Linux, como chroot, freeramdisk, logwatch, mount y swapon.
  • mdevd — gestor de eventos (análogo a udevd), diseñado para manejar la conexión en caliente de dispositivos. Por la configuración, mdevd es compatible con mdev de Busybox.
  • bcnm — configurador de red con capacidades para configurar Wi-Fi del lado del cliente.
  • execline — lenguaje de escritura de scripts.
  • skalibs — biblioteca para crear aplicaciones de sistema seguras en lenguaje C.
  • s6-dns — conjunto de bibliotecas cliente y utilidades, que reemplazan las típicas utilidades DNS de BIND y djbdns.
  • dnsfunnel — redirige solicitudes DNS locales a un externo servidor (reenvío DNS).
  • shibari — servidor DNS simple.
  • tipidee — servidor HTTP con soporte para HTTP/1.1.

En la nueva versión de s6-rc y las utilidades relacionadas:

  • Se ha implementado el comando «s6-rc reload» para reiniciar servicios que funcionan durante mucho tiempo.
  • Se ha añadido el archivo de control reload-signal, que determina la señal enviada al proceso para reiniciarlo (por defecto SIGHUP).
  • Se ha eliminado la utilidad s6-rc-bundle: ya no se admite la modificación de conjuntos de bundles sin recompilación.
  • Se ha propuesto un nuevo formato para la base de datos interna (la actualización requiere recompilación y la ejecución de la utilidad s6-rc-format-upgrade).
  • Se ha garantizado un manejo adecuado de la situación de reinicio de la utilidad s6-rc-init para inicializar servicios y se ha mejorado el manejo de fallos del sistema.
  • Se han añadido las opciones -I/-i a la utilidad s6-rc-set-change para mostrar una advertencia o terminar con error al detectar una dependencia en conflicto; -P/-p para habilitar/deshabilitar la resolución automática de conflictos de dependencias al cambiar el estado de los servicios.
  • Se ha eliminado la opción obsoleta «-f».
  • Se ha añadido el comando s6-svscanboot a la utilidad s6 para redirigir los registros del supervisor s6-svscan a s6-log, cuando no se ejecuta bajo el PID 1.
  • Se ha implementado la opción «s6-svc -l» para enviar una señal de reinicio.
  • Se ha añadido soporte para opciones y comandos en la interfaz de usuario s6-frontend: «s6 —user» (para trabajar con servicios de usuario), «s6 live reset», «s6 apply», «s6 enable|disable|start|stop|kill|apply», «s6 live stop —clean».
  • En el servidor http tipidee se ha implementado soporte para FastCGI y se ha añadido la opción cgi_pass_authorization.

    Fuente: opennet.ru
Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster