menedżer serwisu (), który rozwija się dzięki deweloperom dystrybucji GuixSD GNU/Linux jako zależność wspierająca alternatywię dla systemu inicjalizacji SysV-init. Demon zarządzający i narzędzia Shepherd napisane są w języku Guile (jedna z implementacji języka Scheme), który jest także używany do definiowania ustawień i parametrów uruchamiania serwisów. Shepherd jest już używany w dystrybucji GuixSD GNU/Linux i jest również ukierunkowany na użycie w GNU/Hurd, ale może działać w każdej zgodnej z POSIX-os, dla której dostępny jest język Guile.
Shepherd może być używany jako główny system inicjalizacji (init z PID 1) lub w oddzielny sposób do zarządzania procesami w tle dla poszczególnych użytkowników (na przykład do uruchamiania tor, privoxy, mcron itp.) z uprawnieniami danych użytkowników. Shepherd realizuje uruchamianie i zatrzymywanie serwisów, biorąc pod uwagę wzajemne zależności między nimi, dynamicznie określając i uruchamiając usługi, od których zależy wybrany serwis. Shepherd wspiera również definiowanie konfliktów między serwisami i zapobiega ich jednoczesnemu uruchamianiu.
Główne nowości:
- Dodany tryb pracy serwisów ,
, w którym serwis jest oznaczany jako zatrzymany zaraz po pomyślnym uruchomieniu, co może być przydatne do uruchamiania jednorazowych zadań przed innymi serwisami, na przykład do czyszczenia lub inicjalizacji; - Zapewniono usunięcie plików z gniazdami po zakończeniu pracy
shepherd; - Polecenie «herd stop» teraz nie wyświetla błędu, gdy wykona się na już zatrzymanym serwisie;
- Narzędzie herd teraz zwraca nienulowy kod wyjścia w przypadku niepowodzenia uruchomienia zadania;
- W przypadku uruchamiania w kontenerze zapewniono ignorowanie błędów związanych z ładowaniem.
Źródło: opennet.ru
