发布服务管理器 s6-rc 0.5.3.0 和初始化系统 s6-linux-init 1.0.7

服务管理器 s6-rc 0.5.3.0 的重要版本已准备就绪,旨在管理初始化脚本和服务的启动,同时考虑到依赖性。 s6-rc 工具包既可用于初始化系统,也可用于组织与反映系统状态变化的事件相关的任意服务的启动。 提供完整的依赖关系树跟踪以及服务的自动启动或关闭以达到指定的状态。 该代码是用 C 语言编写的,并根据 ISC 许可证分发。

s6-rc 服务管理器可以被视为 sysv-rc 或 OpenRC 的类似物,包括一组用于启动和停止长时间运行的进程(守护进程)或立即终止的初始化脚本的实用程序。 在工作过程中,考虑到组件之间的依赖关系,保证脚本和服务的并行启动不交叉,并保证脚本执行的顺序在不同的启动之间重复。 所有状态更改的处理都会考虑依赖关系,确保不违反依赖关系(例如,当服务启动时,其操作所需的依赖关系将自动启动,而当停止时,依赖的服务也将停止)。

s6-rc 提供了更通用的捆绑概念,而不是运行级别,它允许您根据任意特征和要解决的任务对服务进行分组。 为了提高工作效率,使用了由 s6-rc-compile 实用程序根据包含用于启动/停止服务的文件的目录内容创建的编译依赖库。 s6-rc-db 和 s6-rc-update 实用程序用于解析和操作数据库。 系统支持sysv-init兼容的init脚本,并且可以从sysv-rc或OpenRC导入依赖信息。

s6-rc 的优点之一是紧凑的实现,除了用于解决直接问题的组件之外不包含任何多余的内容,并且消耗最少的资源。 与其他服务管理器不同,s6-rc 支持为现有服务集主动(离线)构建依赖关系图,这允许您单独执行资源密集型依赖关系分析,而不是在加载或状态更改期间执行。 同时,该系统并不是单一的,而是分为一系列独立的、可替换的模块,每个模块根据 Unix 哲学,只解决一个特定的任务。

与监视进程操作的 s6 实用程序(类似于 daemontools 和 runit)结合使用,该工具包允许您同时监视长时间运行的服务的操作,例如,在异常终止的情况下重新启动它们,并确保顺序命令以可重复的形式启动,在不同的初创公司中重复。 支持的功能包括访问套接字时激活服务(访问网络端口时启动处理程序)、记录进程事件(替换 syslogd)以及受控授予附加权限(类似于 sudo)。

同时发布了 s6-linux-init 1.0.7.0 软件包,提供了 init 进程的实现,为基于 Linux 内核的操作系统构建现成的 init 系统,其中 s6 和 s6 -rc 实用程序用于管理服务和初始化脚本。 同时,s6 和 s6-rc 不依赖于 s6-linux-init,如果需要,可以与任何初始化系统一起使用。

此外,该项目还提供:

  • 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。
  • s6-dns 是一组客户端库和实用程序,用于替换 BIND 和 djbdns 中的标准 DNS 实用程序。

在新版本的 s6-rc 中,s6-rc-compile 实用程序实现从目录(而不是文件)读取有关依赖项和服务集的数据。 通过包管理器安装程序时,使用目录可以简化向数据库添加服务以及有关依赖项信息的过程,因为它允许您无需更改文件即可完成操作。 保留了对旧的基于文件的格式的支持以确保兼容性。 在新版本的 s6-linux-init 中,s6-linux-init-maker 实用程序中添加了“-S”选项,用于同步容器中的数据。

来源: opennet.ru

添加评论