systemd 系統管理器版本 244

經過三個月的開發 提出了 系統管理員發布 systemd 244.

主要變化:

  • 新增了對基於 cgroups v2 的 cpuset 資源控制器的支持,它提供了一種將進程綁定到特定 CPU(“AllowedCPUs”設定)和 NUMA 記憶體節點(“AllowedMemoryNodes”設定)的機制;
  • 新增了對從systemd 配置的SystemdOptions EFI 變數載入設定的支持,這允許您在更改核心命令列選項出現問題並且從磁碟讀取配置太晚的情況下自訂systemd 行為(例如,當您需要配置選項時)與 cgroup 層次結構相關)。 要在 EFI 中設定變量,可以使用指令“bootctl systemd-efi-options”;
  • 新增了從與單元類型關聯的「{unit_type}.d/」目錄(例如「service.d/」)載入設定的單元的支持,該設定可用於新增涵蓋給定類型的所有單元檔案的設定一次;
  • 對於服務單元,新增了新的沙箱隔離模式 ProtectKernelLogs,它允許您拒絕程式存取核心日誌緩衝區,可透過 syslog 系統呼叫存取(不要與 libc 中提供的同名 API 混淆)。 如果啟動該模式,應用程式對/proc/kmsg、/dev/kmsg和CAP_SYSLOG的存取將被封鎖;
  • 對於單位,提出了RestartKillSignal設置,它允許您重新定義任務重新啟動期間用於終止進程的訊號數量(您可以更改在準備重啟階段停止進程的行為);
  • 「systemctl clean」指令已適用於套接字、安裝和交換單元;
  • 在載入初期,停用對核心透過 printk 呼叫輸出訊息的強度的限制,這樣可以在日誌儲存尚未連接的階段累積更完整的載入進度日誌(日誌累積在內核的環形緩衝區中)。 從內核命令列設定 printk 限制優先,並允許您覆寫 systemd 行為。 直接將日誌輸出到 /dev/kmsg 的 Systemd 程式(這僅在啟動階段的早期完成)使用單獨的內部限制來防止緩衝區阻塞;
  • systemctl 實用程式中新增了「stop --job-mode=triggering」命令,該命令允許您停止命令列上指定的單元以及可以呼叫它的所有單元;
  • 單位狀態資訊現在包括有關呼叫和被叫單位的資訊;
  • 可以在範圍單元中使用“RuntimeMaxSec”設定(以前僅在服務單元中使用)。 例如,「RuntimeMaxSec」現在可用於透過建立範圍單元來限制 PAM 會話的時間
    對於一個用戶帳戶。 時間限制也可以透過 pam_systemd PAM 模組參數中的 systemd.runtime_max_sec 選項來設定;

  • 新增了一組新的系統呼叫“@pkey”,在限制容器和服務時,可以更輕鬆地將與記憶體保護相關的系統呼叫列入白名單;
  • 為 systemd-tmpfiles 新增了「w+」標誌,用於在檔案追加模式下寫入;
  • 在 systemd-analyze 輸出中新增了有關核心記憶體配置是否與 systemd 設定相符的資訊(例如,是否某些第三方程式更改了核心參數);
  • systemd-analyze 中新增了「--base-time」選項,指定時,日曆資料是相對於該選項指定的時間計算的,而不是相對於當前系統時間;
  • 「journalctl —update-catalog」確保輸出中元素順序的一致性(對於組織可重複建構很有用);
  • 新增了為 systemd 服務中使用的「WatchdogSec」設定指定預設值的功能。 編譯時,可以透過「-Dservice-watchdog」選項來確定基底值(如果設定為空,看門狗將被停用);
  • 新增了建置選項“-Duser-path”以覆寫 $PATH 值;
  • 在 systemd-id128 中新增了「-u」(「--uuid」)選項,以輸出 UUID(UUID 的規範表示)中的 128 位元識別碼;
  • 現在建置至少需要 libcryptsetup 版本 2.0.1。

與網路設定相關的變更:

  • Systemd-networkd 增加了對動態重新配置連結的支持,為此,networkctl 中添加了「reload」和「reconfigure DEVICE...」命令以重新載入設定和重新配置設備;
  • systemd-networkd 已停止為具有 Intranet 位址 4/169.254.0.0 的本機 IPv16 連結建立預設路由(連結本地)。 以前,為此類連結自動建立預設路由在某些情況下會導致意外行為和路由問題。 若要傳回舊行為,請使用「DefaultRouteOnDevice=yes」設定。 同樣,如果沒有為鏈路啟用本地 IPv6 路由,則停止分配本地 IPv6 位址;
  • 在systemd-networkd中,當以ad-hoc模式連接無線網路時,預設配置是使用鏈路本地尋址(link-local)來實現的;
  • 新增參數RxBufferSiz和TxBufferSize,用於配置網路介面接收和發送緩衝區的大小;
  • systemd-networkd 實現額外 IPv6 路由的通告,透過「[IPv6RoutePrefix]」部分中的 Route 和 LifetimeSec 選項進行調節;
  • systemd-networkd 新增​​了使用「[NextHop]」部分中的「Gateway」和「Id」選項來設定「下一跳」路由的功能;
  • systemd-networkd 和 DHCP 的 networkctl 提供 IP 位址綁定(租約)的動態更新,由「networkctl renew」命令實現;
  • systemd-networkd 確保重新啟動時重設 DHCP 設定(使用 KeepConfiguration 選項儲存設定)。 SendRelease 設定的預設值已變更為“true”;
  • DHCPv4 用戶端可確保使用伺服器傳送的 OPTION_INFORMATION_REFRESH_TIME 選項值。 為了從伺服器請求特定選項,建議使用“RequestOptions”參數,並將選項發送到伺服器 - “SendOption”。 為了讓DHCP客戶端設定IP服務類型,增加了「IPServiceType」參數;
  • 為了用 SIP(​​會話發起協定)伺服器清單取代 DHCPv4 伺服器,新增了「EmitSIP」和「SIP」參數。 在客戶端,可以使用「UseSIP=yes」設定來啟用從伺服器接收SIP參數;
  • 向 DHCPv6 用戶端新增「PrefixDelegationHint」參數以請求位址前綴;
  • .network 檔案支援按 SSID 和 BSSID 來對應無線網絡,例如綁定到存取點名稱和 MAC 位址。 無線介面的 SSID 和 BSSID 值顯示在 networkctl 輸出中。 此外,還新增了按無線網路類型進行比較的功能(WLANInterfaceType 參數);
  • systemd-networkd 新增​​了配置排隊規則以使用新的父參數控制流量的功能,
    NetworkEmulatorDelaySec、NetworkEmulatorDelayJitterSec、
    NetworkEmulatorPacketLimit 與 NetworkEmulatorLossRate,
    “[TrafficControlQueueingDiscipline]”部分中的 NetworkEmulatorDuplicateRate;

  • systemd-resolved 在使用 GnuTLS 建置時提供憑證中 IP 位址的驗證。

udev 相關變更:

  • Systemd-udevd 已刪除 30 秒逾時以強制卡住的處理程序終止。 Systemd-udevd 現在等待處理程序完成,而在大型安裝中,30 秒不足以正常完成操作(例如,在切換根檔案系統的已安裝分割區的過程中,逾時可能會中斷驅動程式初始化)。 使用 systemd 時,systemd-udevd 在退出之前等待的逾時時間可以透過 systemd-udevd.service 中的 TimeoutStopSec 設定進行設定。 當沒有systemd運行時,超時由udev.event_timeout參數控制;
  • 為 udev 新增了 fido_id 程序,用於識別 FIDO CTAP1 令牌
    (“U2F”)/CTAP2 基於有關其過去使用情況的數據並顯示必要的環境變數(該程式允許您無需使用先前使用的所有已知令牌的外部白名單);

  • 實作了從 Chromium OS 匯入的白名單中的裝置自動產生 udev 自動掛起規則(此變更可讓您擴展其他裝置的省電模式的使用);
  • udev 中新增了新的「CONST{key}=value」設置,以允許直接對應系統常數值,而無需執行單獨的檢查處理程序。 目前僅支援“arch”和“virt”鍵;
  • 在執行支援模式的請求操作時,啟用 CDROM 以非獨佔模式開啟(此變更解決了程式存取 CDROM 的問題,並降低了不使用獨佔存取模式的磁碟寫入程式中斷的風險)。

來源: opennet.ru

添加評論