szolgáltatáskezelő (), amelyet a GNU Guix System disztribúció fejlesztői fejlesztenek, mint támogató függőséget a SysV-init inicializáló rendszer alternatívájaként. A Shepherd vezérlő démon és eszközök a Guile nyelven íródtak (a Scheme nyelv egyik megvalósítása), amit a szolgáltatások indítási beállításainak meghatározására is használnak. A Shepherd már alkalmazásra került a GuixSD GNU/Linux disztribúcióban, és célja a GNU/Hurd-on való használat is, de bármilyen POSIX-kompatibilis operációs rendszerben működhet, amelyhez elérhető a Guile nyelv.
A Shepherd használható mint az alapvető inicializáló rendszer (init c PID 1), valamint elkülönített módban, hogy kezelje a háttérfolyamatokat a felhasználók számára (például tor, privoxy, mcron elindításához stb.) a felhasználók jogainak megfelelően. A Shepherd végzi a szolgáltatások indítását és leállítását, figyelembe véve a szolgáltatások közötti összefüggéseket, dinamikusan meghatározva és elindítva azokat a szolgáltatásokat, amelyek a választott szolgáltatástól függnek. A Shepherd emellett támogatja a szolgáltatások közötti konfliktusok meghatározását és megakadályozza azok egyidejű végrehajtását.
Főbb újítások:
- A make-kill-destructor megvalósítja a folyamatcsoportok megölését;
- Hozzáadva a «default-pid-file-timeout» paraméter, amely meghatározza a PID-fájl létrehozásához szükséges várakozási időt;
- Ha a PID-fájl a megadott időkereten belül nem jön létre, az egész folyamatcsoport leállításra kerül (megoldja a munkafolyamatok PID-fájl nélküli hagyását);
- A «make-forkexec-constructor»-hoz hozzáadva a «#:file-creation-mask» paraméter, a naplófájlok létrehozásának megvalósítása, valamint a régi hívási megállapodás támogatásának megszüntetése;
- A prctl nélküli rendszereken, mint például a GNU/Hurd, megoldva a fordítási problémákat;
- Kijavítva egy hibát, amely miatt a SIGALRM jelet másodpercenként küldte.
Forrás: opennet.ru
