Finit 4.0初始化系统可用

经过大约三年的开发,初始化系统 Finit 4.0(Fast init)发布,作为 SysV init 和 systemd 的简单替代品。 该项目基于对 EeePC 上网本 Linux 固件中使用的 fastinit 初始化系统进行逆向工程开发,并以其非常快的启动过程而闻名。 该系统主要旨在启动紧凑型和嵌入式系统,但也可用于传统的桌面和服务器环境。 已经为 Void Linux、Alpine Linux 和 Debian GNU/Linux 准备了示例实现脚本。 该项目代码是用 C 语言编写的,并根据 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初始化系统可用

Finit 4.0 版本中添加的更改包括(由于更改破坏了向后兼容性,因此跳过了 3.2 版):

  • 单独的重新启动实用程序已被替换为 initctl 的符号链接,类似于暂停、关闭、断电和挂起实用程序。
  • 指示业务进展情况已实施。
  • “inictl cond set|clear COND”命令的操作已更改为将操作绑定到各种事件。 用于标识服务的语法是而不是绑定到路径。
  • inetd 服务器的内置实现已被删除,如有必要,可以在其中安装 xinetd。
  • 添加了对 cgroups v2 的支持,以便在单独的 cgroup 中运行服务。
  • 添加了带有自己的 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

添加评论