Wydanie menedżera serwisowego s6-rc 0.5.3.0 i systemu inicjalizacji s6-linux-init 1.0.7

Została wydana istotna wersja menedżera usług s6-rc 0.5.3.0, która ma na celu zarządzanie uruchamianiem skryptów inicjalizacyjnych oraz usług, uwzględniając zależności. Narzędzie s6-rc może być stosowane zarówno w systemach inicjalizacyjnych, jak i do organizacji uruchamiania dowolnych usług w odpowiedzi na wydarzenia, które odzwierciedlają zmianę stanu systemu. Oferowane jest pełne śledzenie drzewa zależności oraz automatyczne uruchamianie lub zatrzymywanie usług w celu osiągnięcia wskazanego stanu. Kod napisano w języku C i jest udostępniany na licencji ISC.

Menedżer usług s6-rc, który można traktować jako odpowiednik sysv-rc lub OpenRC, zawiera zestaw narzędzi do uruchamiania i zatrzymywania długotrwałych procesów (demonów) lub skryptów inicjalizacyjnych uruchamianych na żądanie. Podczas pracy uwzględniane są zależności między komponentami, zapewniane jest równoległe uruchamianie skrótów i usług, które nie kolidują ze sobą oraz gwarantowana jest powtarzalność sekwencji wykonania skryptów przy różnych uruchomieniach. Wszystkie zmiany stanu są przetwarzane z uwzględnieniem zależności, dbając o to, aby nie były one naruszane (na przykład przy uruchomieniu jakiejś usługi automatycznie uruchamiane będą niezbędne dla niej zależności, a przy zatrzymaniu - zatrzymane będą również usługi zależne).

Zamiast poziomów uruchamiania (runlevel) w s6-rc zaproponowano bardziej uniwersalną koncepcję zestawów (bundles), która pozwala grupować usługi według dowolnych kryteriów i zadań do rozwiązania. Aby zwiększyć efektywność działania, 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 analizy i manipulacji bazą danych proponowane są narzędzia s6-rc-db i s6-rc-update. System wspiera skrypty inicjalizacyjne zgodne z sysv-init i może importować informacje o zależnościach z sysv-rc lub OpenRC.

Do zalet s6-rc należy kompaktowa realizacja, która nie zawiera niczego zbędnego, oprócz komponentów do rozwiązywania bezpośrednich zadań, i zużywa minimum zasobów. W przeciwieństwie do innych menedżerów usług, s6-rc obsługuje proaktywne (w trybie offline) budowanie grafu zależności dla dostępnego zestawu usług, co pozwala na przeprowadzenie zasobożernej analizy zależności osobno, a nie podczas ładowania lub zmiany stanu. System nie jest monolityczny i jest podzielony na szereg oddzielnych i wymiennych modułów, z których każdy, zgodnie z filozofią Unix, rozwiązuje tylko określone zadanie.

W połączeniu z narzędziami s6, które monitorują pracę procesów (odpowiednik daemontools i runit), zestaw narzędzi pozwala jednocześnie kontrolować działanie długotrwałych usług, na przykład, ponownie je uruchamiając w przypadku awaryjnych zakończeń, i zapewniać uruchamianie sekwencji komend w powtarzalnej formie, która powtarza się przy różnych uruchomieniach. Obsługiwane są również takie możliwości, jak aktywacja usługi przy dostępie do gniazda (uruchamianie procesora podczas żądania dostępu do portu sieciowego), rejestrowanie zdarzeń procesu (zamiennik syslogd) oraz kontrolowane przyznawanie dodatkowych uprawnień (odpowiednik sudo).

Jednocześnie dostępna jest wersja pakietu s6-linux-init 1.0.7.0, oferująca realizację procesu init do budowania gotowych systemów inicjalizacji dla systemów operacyjnych opartych na jądrze Linux, w których do zarządzania usługami i skryptami inicjalizacji wykorzystywane są narzędzia s6 i s6-rc. Przy tym s6 i s6-rc nie są powiązane z s6-linux-init i w razie potrzeby mogą być używane z dowolnymi systemami inicjalizacji.

Ponadto projekt oferuje:

  • s6-networking – zestaw narzędzi do tworzenia usług sieciowych, podobny do ucspi.
  • s6-frontend – opakowanie umożliwiające odtworzenie funkcjonalności daemontools i runit na bazie s6.
  • s6-portable-utils – zestaw standardowych narzędzi Unix, takich jak cut, 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 związanych z Linuxem, takich jak chroot, freeramdisk, logwatch, mount oraz swapon.
  • s6-dns – zestaw bibliotek klienckich i narzędzi, które zastępują standardowe narzędzia DNS z BIND oraz djbdns.

W nowej wersji s6-rc, w narzędziu s6-rc-compile, zaimplementowano czytanie danych o zależnościach i zestawach usług z katalogów, zamiast plików. Użycie katalogów upraszcza dodawanie usług do bazy danych z informacjami o zależnościach podczas instalacji oprogramowania przez menedżera pakietów, ponieważ pozwala na pominięcie zmian w plikach. Wsparcie dla starego formatu opartego na plikach zostało zachowane dla zapewnienia zgodności. W nowej wersji s6-linux-init do narzędzia s6-linux-init-maker dodano opcję „-S” do synchronizacji danych w kontenerach.

Ź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