Release av GNU Shepherd 0.9.2 init-systemet

Servicehanteraren GNU Shepherd 0.9.2 (tidigare dmd) har publicerats, som utvecklas av utvecklarna av GNU Guix System-distributionen som ett alternativ till SysV-init-initieringssystemet som stöder beroenden. Shepherd-kontrolldemonen och verktygen är skrivna på Guile-språket (en av implementeringarna av Scheme-språket), som också används för att definiera inställningar och parametrar för att starta tjänster. Shepherd används redan i GuixSD GNU/Linux-distributionen och är också avsedd att användas i GNU/Hurd, men kan köras på vilket POSIX-kompatibelt operativsystem som helst för vilket Guile-språket är tillgängligt.

Shepherd gör arbetet med att starta och stoppa tjänster genom att ta hänsyn till relationerna mellan tjänster, dynamiskt identifiera och starta de tjänster som den valda tjänsten är beroende av. Shepherd stöder också att upptäcka konflikter mellan tjänster och förhindra att de körs samtidigt. Projektet kan användas både som huvudinitieringssystem (init med PID 1), och i en separat form för att hantera bakgrundsprocesser för enskilda användare (till exempel för att köra tor, privoxy, mcron, etc.) med exekvering med rättigheterna av dessa användare.

Bland ändringarna:

  • Filbeskrivningar som används i Shepherd är nu markerade med flaggan O_CLOEXEC (close-on-exec) istället för att stängas omedelbart när ett exec-kommando exekveras, vilket gör att handtag kan skickas till tjänster som startas indirekt av ett exec-kommando.
  • Klientanslutningar behandlas nu på ett icke-blockerande sätt, vilket förhindrar att shepherd hänger sig när ett ofullständigt kommando skickas.
  • Säkerställer att en katalog skapas för loggfiler definierade i "loggfil"-inställningen om den inte finns.

Källa: opennet.ru

Lägg en kommentar