Wydanie systemu inicjalizacji GNU Shepherd 0.9

Dwa lata po wcześniejszym wydaniu opublikowano menedżera usług GNU Shepherd 0.9 (wcześniej dmd), który rozwijany jest przez twórców dystrybucji GNU Guix System jako alternatywa dla systemu inicjalizacji SysV-init, wspierającego zależności. Demony zarządzające i narzędzia Shepherd są napisane w języku Guile (jedna z implementacji języka Scheme), który jest również wykorzystywany do definiowania ustawień i parametrów uruchamiania usług. Shepherd jest już używany w dystrybucji GuixSD GNU/Linux i ma na celu również wykorzystanie 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 wykonuje pracę polegającą na uruchamianiu i zatrzymywaniu usług, uwzględniając wzajemne powiązania między usługami, dynamicznie określając i uruchamiając usługi, od których zależy wybrana usługa. Shepherd wspiera również definiowanie konfliktów między usługami i zapobiega ich jednoczesnemu uruchamianiu. Projekt może być używany zarówno jako główny system inicjalizacji (init z PID 1), jak i w wydzielonym trybie do zarządzania procesami w tle pojedynczych użytkowników (na przykład do uruchamiania tor, privoxy, mcron itp.) z uprawnieniami danych użytkowników.

Główne nowości:

  • Zaimplementowano koncepcję usług tymczasowych (transient), które automatycznie wyłączają się po zakończeniu działania z powodu zakończenia procesu lub wywołania metody „stop”, co może być konieczne dla usług syntetyzowanych, które nie mogą być ponownie uruchomione po zakończeniu działania.
  • Dodano procedurę „make-inetd-constructor” do tworzenia usług podobnych do inetd.
  • Wprowadzono procedurę „make-systemd-constructor” do tworzenia usług aktywowanych przy aktywności sieciowej (w stylu aktywacji gniazd w systemd).
  • Dodano procedurę uruchamiania usługi w tle — „start-in-the-background”.
  • Do procedury „make-forkexec-constructor” dodano parametry „:supplementary-groups”, „#:create-session” i „#:resource-limits”.
  • Zapewniono działanie bez zablokowania podczas oczekiwania na pliki PID.
  • Dla usług bez parametru „#:log-file” zapewniono wyjście do syslog, a dla usług z parametrem „#:log-file”— zapis logu do oddzielnego pliku z oznaczeniem czasu wpisów. Logi z nieuprzywilejowanego procesu shepherd są przechowywane w katalogu $XDG_DATA_DIR.
  • Zaprzestano wspierania kompilacji z Guile 2.0. Rozwiązano problemy przy używaniu wersji Guile 3.0.5-3.0.7.
  • Wymagana jest teraz biblioteka Fibers w wersji 1.1.0 lub nowszej.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster