GNU Shepherd 0.9.2 初始化系统发布

服务管理器 GNU Shepherd 0.9.2(以前的 dmd)已经发布,它是由 GNU Guix System 发行版的开发人员开发的,作为支持依赖关系的 SysV-init 初始化系统的替代方案。 Shepherd 控制守护进程和实用程序是用 Guile 语言(Scheme 语言的实现之一)编写的,它也用于定义启动服务的设置和参数。 Shepherd 已经在 GuixSD GNU/Linux 发行版中使用,并且也旨在在 GNU/Hurd 中使用,但可以在任何支持 Guile 语言的 POSIX 兼容操作系统上运行。

Shepherd 通过考虑服务之间的关系,动态识别和启动所选服务所依赖的服务来完成启动和停止服务的工作。 Shepherd 还支持检测服务之间的冲突并防止它们同时运行。 该项目既可以用作主初始化系统(PID为1的init),也可以以单独的形式管理各个用户的后台进程(例如,运行tor、privoxy、mcron等)并具有执行权限这些用户。

其中的变化:

  • Shepherd 中使用的文件描述符现在标有 O_CLOEXEC(执行时关闭)标志,而不是在执行 exec 命令时立即关闭,从而允许将句柄传递给由 exec 命令间接启动的服务。
  • 客户端连接现在以非阻塞方式处理,这可以防止 shepherd 在发送不完整的命令时挂起。
  • 确保为“日志文件”设置中定义的日志文件创建目录(如果不存在)。

来源: opennet.ru

添加评论