s6-rc 服务管理器 0.7.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 工具链已应用于 Obarun、Adelie 和 Artix 发行版,也可选择性地用于 Gentoo、Void 和 Alpine 发行版。
该项目还开发了与 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 服务器 服务器 (DNS转发器)。
- shibari 是一个简单的 DNS 服务器。
- tipidee 是一个支持 HTTP/1.1 的 HTTP 服务器。
在新版本的 s6-rc 及相关实用程序中:
- 已实施“s6-rc reload”命令来重启长时间运行的服务。
- 添加了一个重新加载信号控制文件,该文件定义了发送给进程以重新启动的信号(默认值为 SIGHUP)。
- s6-rc-bundle 工具已被移除 - 不再支持在不重新编译的情况下更改软件包。
- 已提出一种新的内部数据库格式(更新需要重新编译并运行 s6-rc-format-upgrade 实用程序)。
- 已确保正确处理重新启动 s6-rc-init 服务初始化实用程序的情况,并改进了系统故障的处理。
- s6-rc-set-change 实用程序已更新,新增以下选项:-I/-i 用于在检测到冲突依赖项时显示警告或报错;-P/-p 用于在服务状态更改时禁用/启用自动解决依赖项冲突。
- 已移除已弃用的“-f”选项。
- s6 实用程序现在具有 s6-svscanboot 命令,当 s6-svscan 未在 PID 1 下运行时,该命令会将 s6-svscan 管理日志重定向到 s6-log。
- 实现了“s6-svc -l”选项,用于发送重启信号。
- s6 前端用户界面现在支持以下选项和命令:“s6 --user”(用于处理用户服务)、“s6 live reset”、“s6 apply”、“s6 enable|disable|start|stop|kill|apply”、“s6 live stop --clean”。
- tipidee HTTP 服务器现在支持 FastCGI,并添加了 cgi_pass_authorization 选项。
来源: opennet.ru
