經過近三年的開發,Finit 4.0(快速初始化)初始化系統正式發表。它旨在成為 SysV init 和 systemd 的一個簡單替代方案。此專案是基於對 fastinit 初始化系統進行逆向工程的研究成果。 Linux-прошивке нетбуков EeePC и примечательной очень быстрым процессом загрузки. Система в первую очередь нацелена на обеспечение загрузки компактных и встраиваемых систем, но также может применяться для обычных настольных и серверных окружений. Примеры сценариев для внедрения подготовлены для Void Linux, 阿爾卑斯山 Linux и Debian GNU /Linux. Код проекта написан на языке Си и распространяется под лицензией MIT.
Finit 支援 SysV init 風格的運作等級、背景進程健康監控(服務失敗時自動重新啟動)、執行一次性處理程序、根據依賴項和任意條件啟動服務,以及附加其他處理程序以在服務執行之前或之後啟動。例如,您可以將服務設定為僅在網路可用後或在其他服務(例如 syslogd)啟動後啟動。 Cgroups v2 用於設定限制。
插件可用於擴展功能並滿足您的需求。為此,我們提供了一個鉤子系統,讓您可以將處理程序附加到服務載入和執行的各個階段,並提供與外部事件的綁定。例如,我們已準備好插件來支援 D-Bus、ALSA、netlink、resolvconf、熱插拔設備、檢查可用性和載入核心模組、處理 PID 檔案以及配置 X 伺服器的環境。
Поддерживается использование типовых скриптов для запуска сервисов, созданных для SysV init (/etc/rc.d и /etc/init.d не используются, но поддержка /etc/inittab может быть реализована через плагин), а также сценариев rc.local, файлов с переменными окружения и сетевых настроек /etc/network/interfaces, как в Debian и BusyBox. Настройки могут как определяться в одном файле конфигурации /etc/finit.conf, так и распределяться по нескольким файлам в каталоге /etc/finit.d.
管理透過標準的 initctl 和 run-parts 工具執行,允許根據運行等級啟動或停用服務,以及選擇性地啟動某些服務。 Finit 還包含一個內建的 getty 實作(用於終端和使用者登入管理)、一個用於監控可操作性的看門狗,以及一個帶有內建 sulogin 的崩潰復原模式,用於啟動一個獨立的命令 shell。

Finit 4.0 版本中新增的變更包括(由於變更破壞了向後相容性,因此跳過了 3.2 版):
- 單獨的重新啟動實用程式已被替換為 initctl 的符號鏈接,類似於暫停、關閉、斷電和掛起實用程式。
- 指示業務進展已實施。
- “inictl cond set|clear COND”命令的行為已更改為將操作綁定到不同的事件。語法用於識別服務而不是綁定到路徑。
- 內建實作已移除。 服務器 inetd,必要時可安裝 xinetd。
- 增加了對 cgroups v2 的支持,以便在單獨的 cgroups 中運行服務。
- 新增了帶有自己的 suslogin 的崩潰復原模式。
- 增加了對 SysV init 啟動/停止腳本的支援。
- 新增了 pre:script 和 post:script 處理程序,可讓您指定在服務啟動之前或啟動時執行的操作。
- 新增了對帶有環境變數的 env:file 的支援。
- 新增了追蹤任意 PID 檔案的功能。
- 新增了使用相對路徑啟動任務和服務的功能。
- 向 initctl 新增了“-b”選項,以在非互動模式(批次模式)下執行操作。
- 內建看門狗已替換為單獨版本的 watchdogd。
- 新增了一個插件,可以為運行期間連接的設備自動載入內核模組。
- 新增了插件來處理/etc/modules-load.d/。
- 新增了對更改設定後自動重新啟動服務的支持,使您無需手動執行“initctl reload”命令。預設情況下停用,需要使用“./configure --enable-auto-reload”進行重建。
- 增加了記錄影響安全的操作的功能,例如更改運行等級、啟動和停止服務以及服務故障。
- 改進了對 /etc/network/interfaces 的支援。
來源: opennet.ru
