ibrahim Asked: 2013-08-02 06:02:15 +0800 CST2013-08-02 06:02:15 +0800 CST 2013-08-02 06:02:15 +0800 CST 如何在 FreeBSD 中更改 rc.d 启动顺序? 772 我的问题与此问题完全相同,只是我想更改 FreeBSD 中的服务。 我做了一些研究,发现 rcorder 命令可以提供以下参数的完整服务顺序。 rcorder /etc/rc.d/* /usr/local/etc/rc.d/* 此外,我可以添加任何 rc.d 脚本的 REQUIRE 选项,以便在它之前启动我的服务。我不喜欢这种方式,因为我不想更改其他程序的 rc.d 脚本。有没有更合适的方法来做到这一点? 谢谢... freebsd 2 个回答 Voted Best Answer voretaq7 2013-08-02T09:06:00+08:002013-08-02T09:06:00+08:00 rc 启动顺序由 确定rcorder,正如您已经确定的那样。 这个确定启动顺序的过程是自动的,其手册页rcorder相对不言自明,但您可能需要花一些时间查看Practical rc.d scripting和rc手册页,然后再进行任何更改。 在您的特定情况下,您可以告诉 rcorder 您的脚本更喜欢启动BEFORE:其他脚本(使用BEFORE关键字),但这应该有充分的理由并在一定的限制内完成。 来自实用 rc.d 脚本文章: 注意:不应滥用 BEFORE: 行来解决其他脚本中不完整的依赖项列表。使用 BEFORE: 的适当情况是当另一个脚本不关心我们的脚本时,但如果在另一个脚本之前运行,我们的脚本可以更好地完成它的任务。一个典型的现实示例是网络接口与防火墙:虽然接口不依赖于防火墙来完成其工作,但系统安全将受益于防火墙在任何网络流量之前准备就绪。 另外 请记住,将服务名称放在 REQUIRE: 行中并不能保证在我们的脚本启动时服务将实际运行。所需的服务可能无法启动或只是在 rc.conf(5) 中被禁用。显然,rcorder(8) 无法跟踪这些细节,而 rc(8) 也不会这样做。因此,由我们的脚本启动的应用程序应该能够处理任何所需服务不可用的情况。 sekrett 2020-06-04T04:52:59+08:002020-06-04T04:52:59+08:00 当然,修补现有脚本是个坏主意,它们将在升级后被覆盖。您可以创建另一个脚本,它什么都不做,但包含 REQUIRE 和 BEFORE 关键字,这样它将交换其他两个脚本的顺序。
rc 启动顺序由 确定
rcorder
,正如您已经确定的那样。这个确定启动顺序的过程是自动的,其手册页
rcorder
相对不言自明,但您可能需要花一些时间查看Practical rc.d scripting和rc
手册页,然后再进行任何更改。在您的特定情况下,您可以告诉 rcorder 您的脚本更喜欢启动
BEFORE:
其他脚本(使用BEFORE
关键字),但这应该有充分的理由并在一定的限制内完成。来自实用 rc.d 脚本文章:
另外
当然,修补现有脚本是个坏主意,它们将在升级后被覆盖。您可以创建另一个脚本,它什么都不做,但包含 REQUIRE 和 BEFORE 关键字,这样它将交换其他两个脚本的顺序。