Wydanie systemu init GNU Shepherd 0.9.2

Opublikowano menedżera usług GNU Shepherd 0.9.2 (dawniej dmd), który jest rozwijany przez twórców dystrybucji GNU Guix System jako alternatywa dla systemu inicjującego SysV-init obsługującego zależności. 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 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. Projekt może służyć 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.

Wśród zmian:

  • Deskryptory plików używane w Shepherd są teraz oznaczone flagą O_CLOEXEC (zamknięcie przy-exec), a nie są zamykane natychmiast po wykonaniu polecenia exec, co pozwala na przekazywanie uchwytów do usług uruchamianych pośrednio przez polecenie exec.
  • Połączenia klientów są teraz przetwarzane w sposób nieblokujący, co zapobiega zawieszaniu się pasterza podczas wysyłania niekompletnego polecenia.
  • Zapewnia utworzenie katalogu dla plików dziennika zdefiniowanych w ustawieniu „plik dziennika”, jeśli nie istnieje.

Źródło: opennet.ru

Dodaj komentarz