Se presenta el administrador del sistema GNU Shepherd 1.0.0 (anteriormente dmd), que combina las capacidades del sistema de inicialización y las herramientas para administrar los servicios del sistema. Cabe señalar que la asignación del número 1.0 después de 21 años de desarrollo marcó el reconocimiento de la preparación del proyecto y su cumplimiento de los requisitos para la funcionalidad de los sistemas de inicialización y administradores de servicios modernos.
El proyecto está siendo desarrollado por los desarrolladores de la distribución GNU Guix System como una alternativa al sistema de inicialización SysV-init que admite dependencias. El demonio de control y las utilidades de Shepherd están escritos en el lenguaje Guile (una de las implementaciones del lenguaje Scheme), que también se utiliza para definir configuraciones y parámetros para iniciar servicios. Shepherd ya se utiliza en la distribución del sistema GNU Guix y también está destinado a su uso en GNU/Hurd, pero puede ejecutarse en cualquier sistema operativo compatible con POSIX para el que esté disponible el lenguaje Guile.
Shepherd realiza el trabajo de iniciar y detener servicios teniendo en cuenta las relaciones entre servicios, identificando e iniciando dinámicamente los servicios de los que depende el servicio seleccionado. Shepherd también admite la detección de conflictos entre servicios y evita que se ejecuten simultáneamente. El proyecto se puede utilizar como sistema de inicialización principal (init con PID 1) y de forma separada para gestionar procesos en segundo plano de usuarios individuales (por ejemplo, para ejecutar tor, privoxy, mcron, etc.) con ejecución con derechos. de estos usuarios.
Nuevas características clave en GNU Shepherd 1.0.0:
- Se agregó soporte para servicios que ejecutan periódicamente comandos o código en el lenguaje Scheme de acuerdo con un cronograma específico.
- El comando "SERVICIO de estado del rebaño" muestra información de alto nivel sobre servicios, como PID, comando y direcciones en las que se reciben solicitudes de red, así como resúmenes de mensajes agregados recientemente al registro. Además, este comando ahora muestra las acciones del usuario aplicables al servicio e informa sobre la presencia de un servicio de reemplazo que se aplicará después de que se reinicie el servicio actual.
- El comando "raíz del estado del rebaño" ya no es sinónimo de "estado del rebaño" y muestra información sobre el proceso del pastor raíz.
- Para la plataforma Linux, se proporciona una opción de reinicio utilizando el mecanismo kexec ("reboot --kexec") para reemplazar el kernel de Linux sin un reinicio físico.
- Se agregó el servicio de rotación de registros, que es responsable de rotar periódicamente los registros y eliminar los registros obsoletos.
- Se agregó el servicio de registro del sistema, que se puede utilizar como reemplazo del sistema syslogd tradicional.
- Se agregó un servicio de temporizador para ejecutar comandos a una hora específica, similar a la utilidad "at". Por ejemplo, “temporizador de programación del rebaño a las 07:00 - mpg123 alarm.mp3”.
- Se agregó un servicio transitorio para ejecutar comandos en segundo plano, similar a la utilidad systemd-run. Por ejemplo, "rebaño genera transitorio -d $PWD - make -j4".
Fuente: opennet.ru