Llançament del sistema d'inici GNU Shepherd 0.9

Dos anys després de la formació de l'última versió significativa, es va publicar el gestor de serveis GNU Shepherd 0.9 (anteriorment dmd), que està sent desenvolupat pels desenvolupadors de la distribució del sistema GNU Guix com a alternativa al sistema d'inicialització SysV-init que admet dependències. . El dimoni de control de Shepherd i les utilitats estan escrites en el llenguatge Guile (una de les implementacions del llenguatge Scheme), que també s'utilitza per definir la configuració i els paràmetres per llançar serveis. Shepherd ja s'utilitza a la distribució GuixSD GNU/Linux i també està orientat al seu ús a GNU/Hurd, però es pot executar en qualsevol sistema operatiu compatible amb POSIX per al qual estigui disponible el llenguatge Guile.

Shepherd fa la feina d'iniciar i aturar serveis tenint en compte les relacions entre serveis, identificant i posant en marxa de forma dinàmica els serveis dels quals depèn el servei seleccionat. Shepherd també admet la detecció de conflictes entre serveis i evitar que s'executin simultàniament. El projecte es pot utilitzar tant com a sistema d'inicialització principal (init amb PID 1), com en una forma independent per gestionar processos en segon pla d'usuaris individuals (per exemple, per executar tor, privoxy, mcron, etc.) amb l'execució amb els drets d'aquests usuaris.

Principals innovacions:

  • S'implementa el concepte de serveis temporals (transitoris), desactivat automàticament després de la finalització per la finalització del procés o la crida del mètode "stop", que pot ser necessari per als serveis sintetitzats que no es poden reiniciar després de l'aturada.
  • Per crear serveis semblants a inetd, s'ha afegit el procediment "make-inetd-constructor".
  • Per crear serveis que s'activen durant l'activitat de la xarxa (a l'estil d'activació del sòcol systemd), s'ha afegit el procediment "make-systemd-constructor".
  • S'ha afegit un procediment per iniciar un servei en segon pla: "inici en segon pla".
  • S'han afegit els paràmetres ":supplementary-groups", "#:create-session" i "#:resource-limits" a la rutina "make-forkexec-constructor".
  • S'ha habilitat el funcionament sense bloquejar mentre s'espera els fitxers PID.
  • Per als serveis sense el paràmetre "#:log-file", es proporciona la sortida a syslog, i per als serveis amb el paràmetre #:log-file, el registre s'escriu en un fitxer independent que indica l'hora de les gravacions. Els registres del procés de pastor sense privilegis s'emmagatzemen al directori $XDG_DATA_DIR.
  • El suport per construir amb Guile 2.0 s'ha interromput. S'han resolt problemes en utilitzar les versions de Guile 3.0.5-3.0.7.
  • Ara cal que la biblioteca Fibres 1.1.0 o posterior funcioni.

Font: opennet.ru

Afegeix comentari