距离上一次发布快一年了,新版本的服务管理器发布了 GNU 牧羊人 0.10 (以前称为 dmd),这是 由 GNU Guix 发行版的开发者开发 作为系统依赖感知 SysV-init 初始化的替代方案。
此新版本的 GNU Shepherd 0.10 代表 132 次提交 两个人的,再加上它被认为是一个版本,因为它解决了缺点并提供了新功能
它们有助于了解系统的状态。
GNU Shepherd 是一个用 Guile 编写的服务管理器,负责管理系统上运行的“群”守护进程,因为 p作为服务异步提供用户空间功能 它可以用作系统初始化(PID 1),也可以被非特权用户用来管理每个用户的守护进程,例如 tor、privoxy、mcron。
值得注意的是,它支持多种守护进程启动机制,包括 inetd 和 systemd 风格的触发套接字。 GNU Shepherd 在 Guile Scheme 中配置,可以用相同的语言进行扩展。 它基于简单的内存安全和无回调编程模型。
用户空间初始化的 Shepherd 模型的核心是扩展的概念,这是一种可组合性形式,其中服务被设计为与其他服务重叠,根据需要通过更精细或专门的行为来增强它们。
GNU Shepherd 0.10 的主要新特性
在这个新版本的 GNU Shepherd 0.10 中,突出的是 新的中间服务状态: “开始”和“停止”,通过运行“herd status”命令并确定服务是否处于启动或停止过程中显示(以前仅支持 herd status “运行”和“停止”)。
新版本中另一个引人注目的变化是 阻止重新执行操作 “开始”和“停止” 服务是否已经启动或停止(之前,执行“牛群开始服务» 导致尝试启动该服务的第二个实例)。
除此之外,还要强调的是 提供了依赖启动的并行化 和以 « 模式推出的服务在后台启动«,以及每项服务的故障时间和状态变化的统计。 执行“herd status”命令时会显示累积统计信息。
我们还可以发现添加了“herd log”命令以显示事件摘要日志和服务状态所有更改的列表。
, 其他变化 脱颖而出:
- 添加了“herd graph”命令以生成允许 Graphviz(“herd graph | xdot -”)用于显示依赖关系的可视化图形的数据。
- 已实现 herd 命令输出的颜色突出显示。
- 新增服务:“monitoring”监控进程资源消耗,“repl”运行REPL(read-evaluate-print cycle)调试接口。
- GOOPS(Guile Object Oriented Programming System)接口已被弃用。
最后,有兴趣的可以详细了解一下,可以查阅详情 以下链接。
如何安装 GNU Shepherd?
对于那些有兴趣尝试 GNU Shepherd 的人,正如已经提到的,Shepherd 是与 GNU Guix 项目一起开发的,并用作 Guix 启动系统。
虽然也不可能在任何 Linux 发行版上安装 Shepherd, 所以对于那些人来说 Arch Linux用户 只需启用 AUR 存储库并键入以下命令:
yay -S shepherd
对于所有其他发行版 安装可以通过编译源代码来完成 为此,打开一个终端并输入它就足够了:
wget https://ftp.gnu.org/gnu/shepherd/shepherd-0.10.0.tar.gz
我们提取:
tar -xvf shepherd/shepherd-0.10.0.tar.gz
我们输入以下目录:
cd shepherd-0.10.0
我们继续进行以下编译:
./configure --prefix=/some/where
make
make check
make install