如何在 FreeBSD 中更改 rc.d 启动顺序?

ibr*_*him 5 freebsd rc.d startup-scripts

我的问题与问题完全相同,只是我想更改 FreeBSD 中的服务。

我做了一些研究,我发现 rcorder 命令可以提供具有以下参数的完整服务顺序。

rcorder /etc/rc.d/* /usr/local/etc/rc.d/*
Run Code Online (Sandbox Code Playgroud)

此外,我可以添加任何 rc.d 脚本的 REQUIRE 选项,以便在它之前启动我的服务。我不喜欢这种方式,因为我不想更改其他程序的 rc.d 脚本。有没有更合适的方法来做到这一点?

谢谢...

vor*_*aq7 6

rc 启动顺序由 确定rcorder,正如您已经确定的那样。

这个确定启动顺序的过程是自动的,其手册页rcorder相对不言自明,但在进行任何更改之前,您可能需要花一些时间查看实用 rc.d 脚本rc手册页


在您的特定情况下,您可以告诉 rcorder 您的脚本更喜欢启动BEFORE:其他脚本(使用BEFORE关键字),但这应该只有在有充分理由的情况下才能完成,并且必须在一定范围内。
来自实用 rc.d 脚本文章:

注意:不应滥用 BEFORE: 行来解决其他脚本中不完整的依赖项列表。使用 BEFORE: 的适当情况是当另一个脚本不关心我们的脚本,但如果在另一个脚本之前运行,我们的脚本可以更好地完成它的任务。一个典型的现实例子是网络接口与防火墙:虽然接口在工作中不依赖于防火墙,但系统安全将受益于防火墙在出现任何网络流量之前准备就绪。

另外

请记住,将服务名称放在 REQUIRE: 行中并不能保证在我们的脚本启动时服务将实际运行。所需的服务可能无法启动或在 rc.conf(5) 中被禁用。显然,rcorder(8) 无法跟踪这些细节,rc(8) 也不会这样做。因此,由我们的脚本启动的应用程序应该能够处理任何不可用的所需服务。