tjänstehanterare (), som utvecklas av utvecklarna av distributionssystemet GNU Guix System som en stödd beroende för alternativet till init-systemet SysV-init. Hanterad demon och verktyg för Shepherd är skrivna i Guile (en av implementeringarna av språket Scheme), vilket också används för att definiera inställningar och startparametrar för tjänster. Shepherd används redan i distributionen GuixSD GNU/Linux och siktar även på att användas i GNU/Hurd, men kan fungera på vilken POSIX-kompatibel OS som helst, för vilken språket Guile är tillgängligt.
Shepherd kan användas både som det primära init-systemet (init med PID 1) och i ett fristående läge för att hantera bakgrundsprocesser för enskilda användare (till exempel för att starta tor, privoxy, mcron osv.) och köras med dessa användares rättigheter. Shepherd ansvarar för att starta och stoppa tjänster med hänsyn till tjänsternas inbördes samband, vilket dynamiskt definierar och startar de tjänster som den valda tjänsten är beroende av. Shepherd stöder också bestämning av konflikter mellan tjänster och förhindrar deras samtidiga körning.
Huvudsakliga nyheter:
- I make-kill-destructor implementeras avstängning av en processgrupp;
- En parameter "default-pid-file-timeout" har lagts till som definierar tiden för att vänta på skapandet av PID-filen;
- Om PID-filen inte dyker upp inom tidsgränsen säkerställs att hela processgruppen avslutas (löser problemet med kvarvarande arbetsprocesser utan PID-fil);
- I "make-forkexec-constructor" har en parameter "#:file-creation-mask" lagts till, vilket möjliggör skapande av loggfiler och upphörande av stöd för det gamla anropsavtalet;
- Problem med kompilering på system utan prctl, såsom GNU/Hurd, har lösts;
- En bugg som orsakade att SIGALRM skickades varje sekund har åtgärdats.
Källa: opennet.ru
