Release av GNU Shepherd 0.8 init-systemet

Tillgängliga servicechef GNU Shepherd 0.8 (ex dmd), som utvecklas av utvecklarna av GNU Guix System-distributionen som ett beroendemedvetet alternativ till SysV-init-initieringssystemet. 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 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 för dessa användare. 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.

Huvudsakliga innovationer:

  • Make-kill-destructor implementerar att döda en grupp processer;
  • Tillagd parameter "default-pid-file-timeout", som bestämmer väntetiden för att skapa en PID-fil;
  • Om PID-filen inte visas inom timeout avslutas hela processgruppen (bestämmer problemet lämnar arbetsprocesser utan PID-fil);
  • Lade till parametern "#:file-creation-mask" till "make-forkexec-constructor", implementerade skapande av loggfiler och slutade stödja den gamla anropskonventionen;
  • Löste problem med kompilering på system utan prctl, såsom GNU/Hurd;
  • Fixade ett problem som gjorde att SIGALRM skickades varje sekund.

Källa: opennet.ru

Lägg en kommentar