Lanzamento do sistema de inicio GNU Shepherd 0.9

Dous anos despois da formación da última versión significativa, publicouse o xestor de servizos GNU Shepherd 0.9 (anteriormente dmd), que está a ser desenvolvido polos desenvolvedores da distribución GNU Guix System como alternativa ao sistema de inicialización SysV-init que admite dependencias. . O daemon de control de Shepherd e as utilidades están escritos na linguaxe Guile (unha das implementacións da linguaxe Scheme), que tamén se usa para definir axustes e parámetros para lanzar servizos. Shepherd xa se usa na distribución GuixSD GNU/Linux e tamén está destinado ao seu uso en GNU/Hurd, pero pode executarse en calquera SO compatible con POSIX para os que estea dispoñible a linguaxe Guile.

Shepherd realiza o traballo de inicio e parada de servizos tendo en conta as relacións entre servizos, identificando e iniciando de forma dinámica os servizos dos que depende o servizo seleccionado. Shepherd tamén admite detectar conflitos entre servizos e evitar que se executen simultáneamente. O proxecto pódese usar tanto como sistema de inicialización principal (init con PID 1), como nunha forma separada para xestionar procesos en segundo plano de usuarios individuais (por exemplo, para executar tor, privoxy, mcron, etc.) con execución cos dereitos. destes usuarios.

Principais novidades:

  • Implícase o concepto de servizos temporais (transitorios), desactivado automaticamente despois da súa finalización debido á terminación do proceso ou á chamada do método "stop", que pode ser necesario para os servizos sintetizados que non se poden reiniciar despois da parada.
  • Para crear servizos similares a inetd, engadiuse o procedemento "make-inetd-constructor".
  • Para crear servizos que se activan durante a actividade da rede (no estilo de activación do socket systemd), engadiuse o procedemento "make-systemd-constructor".
  • Engadiuse un procedemento para iniciar un servizo en segundo plano: "iniciar en segundo plano".
  • Engadíronse os parámetros ":supplementary-groups", "#:create-session" e "#:resource-limits" ao procedemento "make-forkexec-constructor".
  • Activouse a operación sen bloquear mentres se esperan os ficheiros PID.
  • Para os servizos sen o parámetro "#:log-file", ofrécese a saída a syslog, e para os servizos co parámetro #:log-file, o rexistro escribe nun ficheiro separado que indica a hora das gravacións. Os rexistros do proceso de pastor sen privilexios almacénanse no directorio $XDG_DATA_DIR.
  • O soporte para a construción con Guile 2.0 foi descontinuado. Resolvéronse os problemas ao usar as versións 3.0.5-3.0.7 de Guile.
  • Agora é necesario que funcione a biblioteca Fibres 1.1.0 ou posterior.

Fonte: opennet.ru

Engadir un comentario