Freebsd

如何在 FreeBSD 中更改 rc.d 啟動順序?

  • June 3, 2020

我的問題與此問題完全相同,只是我想更改 FreeBSD 中的服務。

我做了一些研究,發現 rcorder 命令可以提供以下參數的完整服務順序。

rcorder /etc/rc.d/* /usr/local/etc/rc.d/*

此外,我可以添加任何 rc.d 腳本的 REQUIRE 選項,以便在它之前啟動我的服務。我不喜歡這種方式,因為我不想更改其他程序的 rc.d 腳本。有沒有更合適的方法來做到這一點?

謝謝…

rc 啟動順序由 確定rcorder,正如您已經確定的那樣。

這個確定啟動順序的過程是自動的,其手冊頁rcorder相對不言自明,但您可能需要花一些時間查看Practical rc.d scriptingrc手冊頁,然後再進行任何更改。


在您的特定情況下,您可以告訴 rcorder 您的腳本更喜歡啟動BEFORE:其他腳本(使用BEFORE關鍵字),但這應該有充分的理由並在一定的限制內完成。

來自實用 rc.d 腳本文章:

注意:不應濫用 BEFORE: 行來解決其他腳本中不完整的依賴項列表。使用 BEFORE: 的適當情況是當另一個腳本不關心我們的腳本時,但如果在另一個腳本之前執行,我們的腳本可以更好地完成它的任務。一個典型的現實範例是網路介面與防火牆:雖然介面不依賴於防火牆來完成其工作,但係統安全將受益於防火牆在有任何網路流量之前準備好。

另外

請記住,將服務名稱放在 REQUIRE: 行中並不能保證在我們的腳本啟動時服務將實際執行。所需的服務可能無法啟動或只是在 rc.conf(5) 中被禁用。顯然,rcorder(8) 無法跟踪這些細節,而 rc(8) 也不會這樣做。因此,由我們的腳本啟動的應用程序應該能夠處理任何所需服務不可用的情況。

引用自:https://serverfault.com/questions/527981