我的问题与这个问题完全一样,除了我想在FreeBSD中改变服务。
我做了一些研究,我发现rcorder命令,它给出了以下参数的完整的服务顺序。
rcorder /etc/rc.d/* /usr/local/etc/rc.d/*
另外,我可以添加任何rc.d脚本的REQUIRE选项,以便在它之前启动我的服务。 我不喜欢这种方式,因为我不想改变其他程序的rc.d脚本。 有没有更适当的方法来做到这一点?
谢谢…
rc启动顺序由rcorder确定,如您已经确定的那样。
这个确定启动顺序的过程是自动的, rcorder的手册页是相对不言自明的,但是在做任何改变之前,您可能会花一些时间来复习Practical rc.d脚本和rc手册页 。
在你的具体情况下,你可以告诉rcorder你的脚本比较喜欢在BEFORE:其他脚本(使用BEFORE关键字) BEFORE启动,但是这只能在有限的条件下完成。
从Practical rc.d脚本文章:
注意:不应该滥用BEFORE:行来解决另一个脚本中不完整的依赖项列表。 使用BEFORE的适当情况是:当另一个脚本不关心我们的时候,但是如果在另一个脚本之前运行,我们的脚本可以更好地完成它的任务。 一个典型的现实例子是networking接口和防火墙:虽然接口不依赖防火墙来完成他们的工作,但是在有任何networkingstream量之前,系统安全将受益于防火墙的准备。
另外
请记住,在REQUIRE:行中放置一个服务名称并不能保证在我们的脚本开始的时候服务将会真正运行。 所需的服务可能无法启动或仅在rc.conf(5)中被禁用。 显然,rcorder(8)不能跟踪这些细节,rc(8)也不会这样做。 因此,由我们的脚本启动的应用程序应该能够处理任何所需的服务不可用。