systemd menedżer systemu wersja 244

Po trzech miesiącach rozwoju przedstawione wydanie menedżera systemu systemd 244.

Główne zmiany:

  • Dodano obsługę kontrolera zasobów procesora opartego na cgroups v2, który zapewnia mechanizm wiązania procesów z określonymi procesorami (ustawienie „AllowedCPUs”) i węzłami pamięci NUMA (ustawienie „AllowedMemoryNodes”);
  • Dodano obsługę ładowania ustawień ze zmiennej SystemdOptions EFI dla konfiguracji systemowej, co pozwala dostosować zachowanie systemd w sytuacjach, gdy zmiana opcji wiersza poleceń jądra jest problematyczna, a konfiguracja z dysku jest odczytywana zbyt późno (na przykład, gdy trzeba skonfigurować opcje związane z hierarchią grupy cgroup). Aby ustawić zmienną w EFI, możesz użyć polecenia „bootctl systemd-efi-options”;
  • Dodano obsługę wczytywania ustawień z katalogów „{unit_type}.d/” powiązanych z typami jednostek (np. „service.d/”), za pomocą których można dodać ustawienia obejmujące wszystkie pliki jednostek danego typu pod adresem raz;
  • Dla jednostek usługowych dodano nowy tryb izolacji piaskownicy ProtectKernelLogs, który pozwala odmówić programowi dostępu do bufora dziennika jądra, dostępnego poprzez wywołanie systemowe syslog (nie mylić z API o tej samej nazwie dostarczonym w libc). Jeżeli tryb jest aktywowany, dostęp aplikacji do /proc/kmsg, /dev/kmsg i CAP_SYSLOG zostanie zablokowany;
  • Dla jednostek zaproponowano ustawienie RestartKillSignal, które pozwala na przedefiniowanie ilości sygnału użytego do zakończenia procesu podczas restartu zadania (można zmienić zachowanie zatrzymania procesu na etapie przygotowania do restartu);
  • Polecenie „systemctl clean” zostało przystosowane do użycia z jednostkami typu Socket, Mount i Swap;
  • Na wczesnym etapie ładowania wyłączone są ograniczenia intensywności wysyłania komunikatów przez jądro poprzez wywołanie printk, co pozwala na gromadzenie pełniejszych logów o postępie ładowania na etapie, gdy magazyn logów nie jest jeszcze podłączony (log jest gromadzona w buforze pierścieniowym jądra). Ustawienie limitów printk z wiersza poleceń jądra ma pierwszeństwo i pozwala zastąpić zachowanie systemowe. Programy systemowe, które bezpośrednio wysyłają logi do /dev/kmsg (odbywa się to tylko na początku fazy rozruchu), używają oddzielnych wewnętrznych ograniczeń w celu ochrony przed zatykaniem bufora;
  • Do narzędzia systemctl dodano polecenie „stop —job-mode=triggering”, które umożliwia zatrzymanie zarówno jednostki określonej w wierszu poleceń, jak i wszystkich jednostek, które mogą ją wywołać;
  • Informacje o stanie jednostek zawierają teraz informacje o jednostkach wzywających i wywoływanych;
  • Istnieje możliwość wykorzystania ustawienia „RuntimeMaxSec” w jednostkach zakresu (wcześniej było ono używane tylko w jednostkach usługowych). Na przykład „RuntimeMaxSec” może być teraz użyty do ograniczenia czasu sesji PAM poprzez utworzenie jednostki zasięgu
    dla konta użytkownika. Limit czasu można również ustawić za pomocą opcji systemd.runtime_max_sec w parametrach modułu pam_systemd PAM;

  • Dodano nową grupę wywołań systemowych „@pkey” podczas ograniczania kontenerów i usług, ułatwiając umieszczanie na białej liście wywołań systemowych związanych z ochroną pamięci;
  • Dodano flagę „w+” do plików systemd-tmpfiles do zapisu w trybie dołączania plików;
  • Dodano informacje do wyników analizy systemd o tym, czy konfiguracja pamięci jądra jest zgodna z ustawieniami systemd (na przykład, jeśli jakiś program innej firmy zmienił parametry jądra);
  • Do systemd-analyze dodano opcję „--base-time”, jeśli jest określona, ​​dane kalendarza są obliczane w odniesieniu do czasu określonego w tej opcji, a nie w stosunku do bieżącego czasu systemowego;
  • „journalctl —update-catalog” zapewnia spójność kolejności elementów na wyjściu (przydatne przy organizowaniu powtarzalnych kompilacji);
  • Dodano możliwość określenia wartości domyślnej dla ustawienia „WatchdogSec” używanego w usługach systemowych. W czasie kompilacji wartość bazową można określić za pomocą opcji „-Dservice-watchdog” (jeśli jest ustawiona na pustą, funkcja watchdog zostanie wyłączona);
  • Dodano opcję kompilacji „-Duser-path”, aby zastąpić wartość $PATH;
  • Dodano opcję „-u” („--uuid”) do systemd-id128 w celu wyprowadzania 128-bitowych identyfikatorów w UUID (kanoniczna reprezentacja UUID);
  • Kompilacja wymaga teraz co najmniej wersji libcryptsetup 2.0.1.

Zmiany związane z ustawieniami sieciowymi:

  • Systemd-networkd dodał obsługę rekonfiguracji łącza w locie, dla której dodano polecenia „reload” i „reconfigure DEVICE...” do networkctl w celu ponownego załadowania ustawień i ponownej konfiguracji urządzeń;
  • systemd-networkd przestał tworzyć domyślne trasy dla lokalnych łączy IPv4 z adresami intranetowymi 169.254.0.0/16 (Łącze lokalne). Wcześniej automatyczne tworzenie domyślnych tras dla takich łączy powodowało w niektórych przypadkach nieoczekiwane zachowanie i problemy z routingiem. Aby przywrócić stare zachowanie, użyj ustawienia „DefaultRouteOnDevice=yes”. Podobnie przypisywanie lokalnych adresów IPv6 jest zatrzymywane, jeśli dla łącza nie jest włączony lokalny routing IPv6;
  • W systemd-networkd, podczas łączenia się z sieciami bezprzewodowymi w trybie ad-hoc, domyślna konfiguracja jest implementowana z adresowaniem lokalnym (link-local);
  • Dodano parametry RxBufferSiz i TxBufferSize umożliwiające konfigurację rozmiaru buforów odbierających i wysyłających interfejsu sieciowego;
  • systemd-networkd implementuje anonsowanie dodatkowych tras IPv6, regulowanych za pomocą opcji Route i LifetimeSec w sekcji „[IPv6RoutePrefix]”;
  • systemd-networkd dodał możliwość konfiguracji tras „next hop” przy użyciu opcji „Gateway” i „Id” w sekcji „[NextHop]”;
  • systemd-networkd i networkctl dla DHCP zapewniają aktualizację w locie powiązań adresów IP (dzierżaw), realizowaną za pomocą polecenia „networkctl renew”;
  • systemd-networkd zapewnia zresetowanie konfiguracji DHCP przy ponownym uruchomieniu (użyj opcji KeepConfiguration, aby zapisać ustawienia). Domyślna wartość ustawienia SendRelease została zmieniona na „true”;
  • Klient DHCPv4 dba o to, aby używana była wartość opcji OPTION_INFORMATION_REFRESH_TIME przesłana przez serwer. Do żądania określonych opcji z serwera proponuje się parametr „RequestOptions”, a do wysyłania opcji do serwera – „SendOption”. Aby skonfigurować typ usługi IP przez klienta DHCP, dodano parametr „IPServiceType”;
  • Aby zastąpić listę serwerów SIP (Session Initiation Protocol) serwerami DHCPv4, dodano parametry „EmitSIP” i „SIP”. Po stronie klienta odbiór parametrów SIP z serwera można włączyć za pomocą ustawienia „UseSIP=yes”;
  • Dodano parametr „PrefixDelegationHint” do klienta DHCPv6 w celu żądania prefiksu adresu;
  • Pliki .network zapewniają obsługę mapowania sieci bezprzewodowych według SSID i BSSID, na przykład w celu powiązania z nazwą punktu dostępu i adresem MAC. Wartości SSID i BSSID są wyświetlane na wyjściu networkctl dla interfejsów bezprzewodowych. Dodatkowo dodano możliwość porównania typu sieci bezprzewodowej (parametr WLANInterfaceType);
  • systemd-networkd dodał możliwość konfiguracji dyscyplin kolejkowania w celu kontrolowania ruchu za pomocą nowych parametrów Parent,
    NetworkEmulatorDelaySec, NetworkEmulatorDelayJitterSec,
    NetworkEmulatorPacketLimit i NetworkEmulatorLossRate,
    NetworkEmulatorDuplicateRate w sekcji „[TrafficControlQueueingDiscipline]”;

  • systemd-resolved zapewnia weryfikację adresów IP w certyfikatach podczas budowania przy użyciu GnuTLS.

zmiany związane z udev:

  • Systemd-udevd usunął 30-sekundowy limit czasu, aby wymusić zakończenie zablokowanych programów obsługi. Systemd-udevd czeka teraz na zakończenie procedur obsługi, dla których 30 sekund nie wystarczyło do normalnego zakończenia operacji w dużych instalacjach (na przykład przekroczenie limitu czasu mogło przerwać inicjalizację sterownika podczas procesu przełączania zamontowanej partycji dla głównego systemu plików). W przypadku korzystania z systemu systemd limit czasu, jaki systemd-udevd będzie oczekiwał przed wyjściem, można ustawić za pomocą ustawienia TimeoutStopSec w systemd-udevd.service. Podczas pracy bez systemd limit czasu jest kontrolowany przez parametr udev.event_timeout;
  • Dodano program fido_id dla udev, który identyfikuje tokeny FIDO CTAP1
    („U2F”)/CTAP2 na podstawie danych o ich dotychczasowym użyciu i wyświetla niezbędne zmienne środowiskowe (program pozwala obejść się bez zewnętrznych białych list wszystkich znanych tokenów, które były wcześniej używane);

  • Zaimplementowano automatyczne generowanie reguł udev autosuspend dla urządzeń z białej listy importowanej z Chromium OS (zmiana pozwala rozszerzyć wykorzystanie trybów oszczędzania energii na dodatkowe urządzenia);
  • Do udev dodano nowe ustawienie „CONST{key}=value”, aby umożliwić bezpośrednie mapowanie wartości stałych systemowych bez uruchamiania oddzielnych procedur obsługi sprawdzania. Obecnie obsługiwane są tylko klawisze „arch” i „virt”;
  • Włączono otwieranie CDROM w trybie niewyłącznym podczas wykonywania operacji żądania dla obsługiwanych trybów (zmiana rozwiązuje problemy z programami uzyskującymi dostęp do CDROM i zmniejsza ryzyko przerwania programów zapisujących na dysku, które nie korzystają z trybu wyłącznego dostępu).

Źródło: opennet.ru

Dodaj komentarz