*BSD 上具有依赖性处理和服务文件格式的初始化系统

*BSD 上具有依赖性处理和服务文件格式的初始化系统

我想知道 *BSD 发行版是否有任何 Systemd 等效项,基本上可以处理服务之间的依赖关系(服务 A 需要启动 B,所以在 B 准备好之前不要启动 A)并且有一个健全的服务文件格式(就像告诉它启动什么以及何时启动的配置文件,而不是 initscript)。

在 Linux 上使用它之后,我什至无法想到回到基于 initscripts 的遗留发行版,但我想尝试 BSD(我需要一个非常小的系统用于路由器和接入点)。

答案1

FreeBSD 的 init 系统具有依赖性。请检查男录音师:

rcorder 实用程序旨在打印一组相互依赖的文件的依赖顺序。通常,它用于查找一组 shell 脚本的执行顺序,其中某些文件必须在其他文件之前执行。

如果您的服务不太复杂,那么它的 rc 脚本也会很简单。如果您的服务很复杂,那么 systemd 单元文件也会很复杂。请参阅rc.d 脚本文档:

#!/bin/sh

. /etc/rc.subr

name=mumbled
rcvar=mumbled_enable

command="/usr/sbin/${name}"

load_rc_config $name
run_rc_command "$1"

我认为这并不复杂。更多详细信息请参阅文档!

答案2

FreeBSD 为您提供了一种在 rc.d 脚本中执行此操作的简单好方法。

看着man rc。您将看到订单是如何计算出来的。本质上,您指定脚本提供什么服务,以及它需要首先运行哪些服务。这是一个例子:

#!/bin/sh
#
# PROVIDE: foo
# REQUIRE: bar_service_required_to_precede_foo

其余的应该自动发生。

相关内容