Nowe wersje menedżera usług s6-rc i systemu inicjalizacji s6-linux-init

Została wydana wersja menedżera usług s6-rc 0.5.6.0, przeznaczona do zarządzania uruchamianiem skryptów inicjalizacyjnych i usług. Obsługuje monitorowanie drzewa zależności oraz automatyczne uruchamianie lub zatrzymywanie usług w celu osiągnięcia wskazanego stanu. Narzędzie s6-rc może być stosowane zarówno w systemach inicjalizacji, jak i do organizacji uruchamiania dowolnych usług w zależności od zdarzeń odzwierciedlających zmiany stanu systemu. System wspiera skrypty inicjalizacyjne zgodne z sysv-init i może importować informacje o zależnościach z sysv-rc lub OpenRC. Kod jest napisany w języku C i jest dystrybuowany na podstawie licencji ISC.

Menedżer usług s6-rc zawiera zestaw narzędzi do uruchamiania i zatrzymywania długo działających procesów (demonów) lub skryptów inicjalizacji, które kończą działanie natychmiastowo. W trakcie pracy zapewnione jest równoległe uruchamianie nieprzecinających się usług i gwarantowana jest powtarzalna kolejność wykonania skryptów przy różnych uruchomieniach. Wszystkie zmiany stanu są obsługiwane z uwzględnieniem zależności, na przykład podczas uruchamiania jakiejś usługi automatycznie uruchomione zostaną niezbędne dla niej zależności, a podczas zatrzymywania — także zależne usługi.

W przeciwieństwie do innych menedżerów usług, s6-rc obsługuje proaktywne (w trybie offline) budowanie grafu zależności dla istniejącego zestawu usług, co pozwala na przeprowadzenie zasobożernej analizy zależności oddzielnie, 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ą Uniksa, rozwiązuje tylko określony problem. Projekt s6-rc trzyma się filozofii minimalizmu (nie zawiera niczego zbędnego) i zużywa minimum zasobów.

Zamiast poziomów uruchamiania (runlevel) w s6-rc wprowadzono koncepcję zestawów (bundles), umożliwiającą grupowanie usług według dowolnych cech i zadań do wykonania. W celu zwiększenia efektywności pracy wykorzystuje się skompilowaną bazę danych zależności, tworzoną przez narzędzie s6-rc-compile na podstawie zawartości katalogów z plikami do uruchamiania/zatrzymywania usług. Do analizy i manipulacji z bazą danych dostępne są narzędzia s6-rc-db i s6-rc-update.

Jednocześnie powstały nowe wersje powiązanych pakietów, które uzupełniają s6-rc:

  • s6 2.13.2.0 — narzędzia do monitorowania działania procesów i zarządzania procesami (analogiczne do daemontools i runit). Obsługiwane są takie funkcje jak ponowne uruchamianie procesów po ich awaryjnym zakończeniu, uruchamianie obsługi (aktywacja usługi) po dostępie do portu sieciowego, rejestrowanie zdarzeń (zamiana syslogd) oraz kontrolowane przyznawanie dodatkowych uprawnień (analogiczne do sudo).
  • s6-linux-init 1.1.3.0 — implementacja procesu init dla systemów operacyjnych na bazie jądra Linux, stosowana do tworzenia systemów inicjalizacji, w których do zarządzania usługami i skryptami wykorzystywane są pakiety s6 i s6-rc.
  • s6-networking 2.7.1.0 — 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 2.3.1.0 — zestaw typowych narzędzi Unix, takich jak cut, chmod, ls, sort i grep, zoptymalizowanych pod kątem minimalnego zużycia zasobów i dystrybuowanych na podstawie licencji ISC.
  • s6-linux-utils 2.6.3.0 — zestaw narzędzi związanych z Linuxem, takich jak chroot, freeramdisk, logwatch, mount i swapon.
  • mdevd 0.1.7.0 — menedżer zdarzeń (analogiczny do udevd), przeznaczony do obsługi gorącego podłączania urządzeń. W konfiguracji mdevd jest zgodny z mdev z Busybox.
  • bcnm 0.0.2.0 — narzędzie do konfiguracji sieci z możliwościami konfiguracji Wi-Fi po stronie klienta.
  • execline 2.9.7.0 — język skryptowy.
  • skalibs 2.14.4.0 — biblioteka do tworzenia bezpiecznych aplikacji systemowych w języku C.
  • s6-dns 2.4.1.0 — zestaw klientów bibliotek i narzędzi, zastępujących standardowe narzędzia DNS z BIND i djbdns.
  • dnsfunnel 0.0.3.0 — przekierowuje lokalne zapytania DNS na zewnętrzne. serwer (DNS forwarder).
  • shibari 0.0.2.0 — prosty serwer DNS.
  • tipidee 0.0.6.0 — serwer HTTP z obsługą HTTP/1.1.

W nowych wersjach do wszystkich pakietów dodano wsparcie dla pkg-config. W bibliotece skalibs zaimplementowano wersje funkcji wejścia/wyjścia, których czas pracy można ograniczyć za pomocą timeoutu. W mdevd dodano opcję „-I” do określenia nazwy grupy netlink w celu odbierania zapytań, a domyślny rozmiar bufora zwiększono do 1 MB. W tipideed umożliwiono strumieniowe przesyłanie wyjścia skryptów CGI, dodano wsparcie dla metod PUT, DELETE i PATCH oraz wprowadzono dyrektywę autochunk do chunked-kodowania przesyłanych danych.

Ź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