Wydanie systemu init GNU Shepherd 0.8

Do dyspozycji kierownik serwisu Pasterz GNU 0.8 (były dmd), który jest rozwijany przez twórców dystrybucji GNU Guix System jako świadoma zależności alternatywa dla systemu inicjującego SysV-init. Demon kontroli Shepherd i narzędzia są napisane w języku Guile (jedna z implementacji języka Scheme), który służy również do definiowania ustawień i parametrów uruchamiania usług. Shepherd jest już używany w dystrybucji GuixSD GNU/Linux i ma być również używany w GNU/Hurd, ale może działać na dowolnym systemie operacyjnym zgodnym z POSIX, dla którego dostępny jest język Guile.

Shepherd może być używany zarówno jako główny system inicjujący (init z PID 1), jak i w osobnej formie do zarządzania procesami w tle poszczególnych użytkowników (na przykład do uruchamiania Tora, privoxy, mcron itp.) z wykonaniem z uprawnieniami tych użytkowników. Shepherd wykonuje pracę polegającą na uruchamianiu i zatrzymywaniu usług, biorąc pod uwagę relacje między usługami, dynamicznie identyfikując i uruchamiając usługi, od których zależy wybrana usługa. Shepherd obsługuje także wykrywanie konfliktów pomiędzy usługami i zapobieganie ich jednoczesnemu działaniu.

Główne innowacje:

  • Make-kill-destructor implementuje zabijanie grupy procesów;
  • Dodano parametr „default-pid-file-timeout”, który określa czas oczekiwania na utworzenie pliku PID;
  • Jeśli plik PID nie pojawi się w określonym czasie, cała grupa procesów zostanie zakończona (decyduje problem pozostawienie procesów pracy bez pliku PID);
  • Dodano parametr „#:file-creation-mask” do „make-forkexec-constructor”, zaimplementowano tworzenie pliku dziennika i przestano wspierać starą konwencję wywoływania;
  • Rozwiązano problemy z kompilacją na systemach bez prctl, takich jak GNU/Hurd;
  • Naprawiono błąd powodujący wysyłanie sygnału SIGALRM co sekundę.

Źródło: opennet.ru

Dodaj komentarz