Wydanie menedżera usług s6-rc 0.5.3.0 i systemu inicjalizacji s6-linux-init 1.0.7

Przygotowano istotne wydanie menedżera usług s6-rc 0.5.3.0, przeznaczonego do zarządzania uruchamianiem skryptów i usług inicjujących z uwzględnieniem zależności. Zestaw narzędzi s6-rc można wykorzystać zarówno w systemach inicjujących, jak i do organizowania uruchamiania dowolnych usług w związku ze zdarzeniami odzwierciedlającymi zmiany stanu systemu. Zapewnia pełne śledzenie drzewa zależności i automatyczne uruchamianie lub zamykanie usług w celu osiągnięcia określonego stanu. Kod napisany jest w języku C i jest rozpowszechniany na licencji ISC.

Menedżer usług s6-rc, który można uznać za odpowiednik sysv-rc lub OpenRC, zawiera zestaw narzędzi do uruchamiania i zatrzymywania długotrwałych procesów (demonów) lub natychmiast kończących skryptów inicjujących. Podczas pracy uwzględniane są zależności pomiędzy komponentami, zapewnione jest równoległe uruchamianie skryptów i usług, które się ze sobą nie przecinają, a także gwarancja powtarzalności sekwencji wykonywania skryptów przy różnych uruchomieniach. Wszystkie zmiany stanu przetwarzane są z uwzględnieniem zależności, dbając o to, aby zależności nie zostały naruszone (przykładowo w momencie uruchomienia usługi automatycznie uruchomione zostaną zależności niezbędne do jej działania, a w przypadku zatrzymania zatrzymane zostaną także usługi zależne).

Zamiast poziomów działania, s6-rc oferuje bardziej uniwersalną koncepcję pakietów, która pozwala grupować usługi według dowolnych cech i zadań do rozwiązania. Aby usprawnić pracę, wykorzystywana jest skompilowana baza zależności, tworzona przez narzędzie s6-rc-compile na podstawie zawartości katalogów z plikami do uruchamiania/zatrzymywania usług. Do analizowania i manipulowania bazą danych oferowane są narzędzia s6-rc-db i s6-rc-update. System obsługuje skrypty inicjujące kompatybilne z sysv-init i może importować informacje o zależnościach z sysv-rc lub OpenRC.

Wśród zalet s6-rc jest kompaktowa implementacja, która nie zawiera niczego zbędnego z wyjątkiem komponentów do rozwiązywania bezpośrednich problemów i zużywa minimum zasobów. W przeciwieństwie do innych menedżerów usług, s6-rc obsługuje proaktywne (offline) tworzenie wykresów zależności dla istniejącego zestawu usług, co pozwala na osobne przeprowadzanie analizy zależności wymagającej dużej ilości zasobów, a nie podczas ładowania lub zmian stanu. Jednocześnie system nie jest monolityczny i jest podzielony na szereg odrębnych i wymiennych modułów, z których każdy zgodnie z filozofią Uniksa rozwiązuje jedynie określone zadanie.

W połączeniu z narzędziami s6 monitorującymi działanie procesów (analogicznie do daemontools i runit) zestaw narzędzi pozwala na jednoczesne monitorowanie działania długo działających usług, na przykład ich ponowne uruchamianie w przypadku nieprawidłowego zakończenia i zapewnienie, że sekwencja poleceń jest uruchamiane w powtarzalnej formie, powtarzanej w różnych startupach. Obsługiwane funkcje obejmują aktywację usługi podczas uzyskiwania dostępu do gniazda (uruchamianie modułu obsługi podczas uzyskiwania dostępu do portu sieciowego), rejestrowanie zdarzeń procesowych (zastąpienie syslogd) i kontrolowane nadawanie dodatkowych uprawnień (analogicznie do sudo).

Jednocześnie dostępne jest wydanie pakietu s6-linux-init 1.0.7.0 oferującego implementację procesu init do budowy gotowych systemów init dla systemów operacyjnych opartych na jądrze Linux, w którym s6 i s6 Narzędzia -rc służą do zarządzania usługami i skryptami inicjującymi. Jednocześnie s6 i s6-rc nie są powiązane z s6-linux-init i, w razie potrzeby, mogą być używane z dowolnymi systemami inicjującymi.

Ponadto projekt przewiduje:

  • s6-networking to zestaw narzędzi do tworzenia usług sieciowych, podobny do ucspi.
  • s6-frontend - framework do odtwarzania funkcjonalności daemontools i runit na s6.
  • s6-portable-utils to zestaw standardowych narzędzi uniksowych, takich jak wycinanie, chmod, ls, sort i grep, zoptymalizowanych pod kątem minimalnego zużycia zasobów i dostarczanych na licencji ISC.
  • s6-linux-utils - Zestaw narzędzi specyficznych dla Linuksa, takich jak chroot, freeramdisk, logwatch, mount i swapon.
  • s6-dns to zestaw bibliotek klienckich i narzędzi, które zastępują standardowe narzędzia DNS z BIND i djbdns.

W nowej wersji s6-rc narzędzie s6-rc-compile implementuje odczytywanie danych o zależnościach i zestawach usług z katalogów, zamiast z plików. Korzystanie z katalogów upraszcza dodawanie usług do bazy danych z informacjami o zależnościach podczas instalowania programów za pośrednictwem menedżera pakietów, ponieważ pozwala to obejść się bez wprowadzania zmian w plikach. Aby zapewnić kompatybilność, zachowano obsługę starego formatu plików. W nowej wersji s6-linux-init do narzędzia s6-linux-init-maker dodano opcję „-S” służącą do synchronizacji danych w kontenerach.

Źródło: opennet.ru

Dodaj komentarz