servicemanagement (), som udvikles af udviklerne af GNU Guix System som en støttende afhængighed til SysV-init init-systemet. Den administrerende daemon og værktøjerne Shepherd er skrevet i Guile (en af implementeringerne af Scheme-sproget), som også bruges til at definere indstillinger og opstart parametre for tjenester. Shepherd anvendes allerede i GuixSD GNU/Linux distributionen og har også til formål at blive brugt i GNU/Hurd, men kan fungere på enhver POSIX-kompatibel OS, hvor Guile er tilgængeligt.
Shepherd kan bruges både som hovedinit-system (init med PID 1) og i isoleret form til at styre baggrundsprocesser for individuelle brugere (f.eks. til at starte tor, privoxy, mcron osv.) med kørsel under de pågældende brugeres rettigheder. Shepherd håndterer opstart og stop af tjenester, tager hensyn til tjenesters indbyrdes forhold, og bestemmer og starter dynamisk de tjenester, som den valgte tjeneste er afhængig af. Shepherd understøtter også bestemmelse af konflikter mellem tjenester og forhindrer deres samtidige udførelse.
Hovednyhederne:
- I make-kill-destructor er implementeret drab af en gruppe processer;
- Tilføjet parameteren «default-pid-file-timeout», som bestemmer ventetiden for oprettelse af PID-fil;
- Hvis PID-filen ikke vises inden for timeouten, sikres det, at hele gruppeprocesserne afsluttes (løser ved at efterlade arbejdende processer uden PID-fil);
- I «make-forkexec-constructor» er parameteren «#:file-creation-mask» tilføjet, logfiler er blevet oprettet, og support for det gamle kald konvention er ophørt;
- Problemer med kompilering på systemer uden prctl, såsom GNU/Hurd, er blevet løst;
- En fejl, der førte til, at SIGALRM blev sendt hvert sekund, er blevet rettet.
Kilde: opennet.ru
