s6-rc 服務管理員 0.6.0.0 版本現已發布。它旨在管理初始化腳本和服務的啟動。此管理器支援依賴關係樹跟踪,並可自動啟動或關閉服務以達到指定狀態。 s6-rc 工具包既可用於初始化系統,也可用於根據反映系統狀態變化的事件來組織任意服務的啟動。此系統支援與 sysv-init 相容的初始化腳本,並可從 sysv-rc 或 OpenRC 匯入依賴關係資訊。該程式碼使用 C 語言編寫,並以 ISC 許可證發布。
s6-rc 服務管理員包括一組用於啟動和停止長時間運行的程序(守護程序)或立即終止初始化腳本的實用程式。在運行過程中,保證不相交服務的並行啟動,並保證不同啟動的腳本執行順序重複。所有狀態變更都會考慮依賴關係進行處理,例如,當啟動一個服務時,其運作所必需的依賴項也會自動啟動,而當停止該服務時,其依賴的服務也會停止。
與其他服務管理員不同,s6-rc 支援為現有服務集主動(離線)建立依賴關係圖,從而允許單獨執行資源密集型依賴關係分析,而不是在啟動或狀態變更期間執行。同時,系統不是單一的,而是分為一系列獨立且可替換的模組,每個模組依照Unix哲學,只解決一個特定的任務。 s6-rc專案遵循極簡主義的理念(不包含任何不必要的東西)並消耗最少的資源。
s6-rc 提出了捆綁包的概念來代替運行級別,允許根據任意特徵和要解決的任務對服務進行分組。為了提高工作效率,使用編譯的依賴關係資料庫,該資料庫由 s6-rc-compile 實用程式根據用於啟動/停止服務的檔案的目錄內容建立。為了解析和操作資料庫,提供了 s6-rc-db 和 s6-rc-update 實用程式。
新版本增加了 s6-rc-repo-* 和 s6-rc-set-* 實用程式集合,用於管理具有服務定義的儲存庫;提供了對平台上共享庫的支援。 macOS; 新增了「--bootdb」選項,用於在建置階段配置包含服務及其相依性資訊的啟動資料庫;為 s6-rc-compile 公用程式新增了「-v2」選項。
該專案還開發了與 s6-rc 互補的配套軟體包:
- s6 是一個用於監控和管理流程的實用程式(類似 daemontools 和 runit)。它支援諸如在進程異常終止後重新啟動進程、在存取網路連接埠時啟動處理程序(服務啟動)、事件日誌記錄(替代 syslogd)以及受控授予額外權限(類似於 sudo)等功能。
- s6-linux-init — 基於核心的作業系統的初始化進程實現 Linux用於建立使用 s6 和 s6-rc 軟體包來管理服務和腳本的初始化系統。
- s6-networking 是一組用於建立網路服務的實用程序,類似於 ucspi。
- s6-frontend 是一個在 s6 之上重新創建 daemontools 和 runit 功能的包裝器。
- s6-portable-utils 是一組常見的 Unix 實用程序,例如 cut、chmod、ls、sort 和 grep,經過最佳化以使用最少的資源並根據 ISC 許可分發。
- s6-linux-utils - 一組與以下系統相關的實用程序 Linux例如 chroot、freeramdisk、logwatch、mount 和 swapon。
- mdevd 是一個事件管理器(類似 udevd),旨在處理裝置的熱插拔。 mdevd 在配置上與 Busybox 的 mdev 相容。
- bcnm 是一個網路設定器,具有在客戶端設定 Wi-Fi 的功能。
- execline 是一種腳本語言。
- skalibs 是一個用於用 C 語言建立安全系統應用程式的函式庫。
- s6-dns 是一組客戶端程式庫和實用程序,用於替代 BIND 和 djbdns 的典型 DNS 實用程式。
- dnsfunnel — перенаправляет локальные DNS-запросы на внешний 服務器 (DNS轉發器)。
- shibari 是一個簡單的 DNS 伺服器。
- tipidee 是一個支援 HTTP/1.1 的 HTTP 伺服器。
來源: opennet.ru
