雖然這個算是超級 FAQ 了,
不過趁還想寫的時候來寫一下。
畢竟現在的硬體配備都不差,
為了充分利用硬體資源很少人會把 LDAP server 單獨放在獨立的機器上。
結果常常開機時某些 service 比 slapd 先起來,
關機或重開時這些 service 又會比 slapd 晚停止,
造成了一個不大也不小的困擾。
FreeBSD 的 rc scripts 啟動順序是看檔案內的註解來決定的,
不像某些系統用檔名前面的數字來決定。
相關資料直接翻這兩個網頁應該就很夠了:
http://www.freebsd.org/doc/handbook/configtuning-rcd.html
http://www.freebsd.org/cgi/man.cgi?query=rcorder&sektion=8
打開 /usr/local/etc/rc.d/slapd 應該會在檔案開頭看到下面這種註解:
1 2 3 4 |
# PROVIDE: slapd # REQUIRE: NETWORKING SERVERS # BEFORE: securelevel # KEYWORD: shutdown |
簡單來說就是把必須比 slapd 晚的 service 全部填在 BEFORE: 後面就行了。
不過這個檔案在下次重裝 slapd 的時候會被 replace 掉,
所以填完之後請記得備份。
另一種方法是去填必須在 slapd 之後才啟動的 service 的 REQUIRE: 欄位,
但是這種做法要開很多檔案來 edit 所以我就不想用了。
如果不喜歡一行填完的其實可以拆成多行寫,
拆的方法是每行都一樣用 # BEFORE: 開頭,
它們會自動被合併起來才處理。