
我正在運行 Ubuntu,其中有目錄/etc/rc0.d
, /etc/rc1.d
, /etc/rc2.d
, ..., /etc/rc6.d
。
我的機器上的範例檔案:
directory example symlinks in the dir
------------------------------------------
/etc/rc1.d: K76dovecot, K77ntp
/etc/rc2.d: S23ntp, S24dovecot
/etc/rc3.d: S23ntp, S24dovecot
/etc/rc4.d: S23ntp, S24dovecot
/etc/rc5.d: S23ntp, S24dovecot
問題:
- 多個“rc”目錄的用途是什麼?
- 為什麼 Ubuntu 將 和 的副本安裝
dovecot
到除和ntp
之外的所有目錄中?rc0.d
rc6.d
- 如果像上面那樣多次指定它們,那麼它們實際上會被執行多次嗎?
- 從上面看得出來啟動時按照什麼順序
dovecot
執行ntp
嗎? - 告訴 Ubuntu在啟動
ntp
之前始終執行的正確方法是什麼?dovecot
答案1
正如其他人所指出的,答案就是運行等級這些基本上就是作業系統的操作模式。在 Linux 上,這些通常是:
ID Name Description
0 Halt Shuts down the system.
1 Single-user Mode Mode for administrative tasks.
2 Multi-user Mode Does not configure network interfaces and
does not export networks services.
3 Multi-user Mode with Networking Starts the system normally.
4 Not used/User-definable For special purposes.
5 Start the system normally with
with GUI As runlevel 3 + display manager.
6 Reboot Reboots the system.
因此,每個rcN
目錄都包含指向應在該運行層級運行的腳本的符號連結。所有實際腳本通常都在/etc/init.d
目錄中:
$ ls -l /etc/rc5.d/S22cron
lrwxrwxrwx 1 root root 14 Jan 14 2013 /etc/rc5.d/S22cron -> ../init.d/cron
符號連結命名
名稱以 an 開頭的符號連結S
將在相關運行層級啟動,而名稱以 開頭的符號連結K
將被終止。請注意,重啟運行等級中的所有連結rc6.d
均以 開頭K
。那是因為它們都應該停止以重新啟動,並且不應啟動任何內容。
首字母後面的數字表示連結腳本的運行順序。數字較小的將先於數字較大的運行。因此,在您的具體範例中,S23ntp
將運行(在本例中啟動)前 S24dovecot
。
答案2
- 這些是
runlevel
s 和 are 是大多數 *NIX 系統使用的 System V 式啟動(基於 - 的系統除外systemd
)。當啟動核心/用戶時,runlevel
它決定應該運行什麼並只執行那個runlevel
。這意味著runlevel
您可以使用不同的程序集啟動。也有用於停止和重新啟動的運行級別,但由於您專注於啟動部分,所以我們現在忽略它們。 - 由於在啟動時只執行一個
runlevel
,因此某些程式應該/想要在不同的runlevel
s 處以相同或不同的順序使用不同或相同的參數啟動/停止(並非所有運行等級在所有作業系統中都相同)。但是 Ubuntu 從 2 複製了運行等級 3-5,這就是為什麼它們是相同的。 - No.
runlevel
s 僅在啟動時或變更時執行一次runlevel
。 ntp
腳本應該先dovecot
在運行等級 2-5 中執行,而不是運行等級 1 。因此,這完全取決於您使用的運行等級。S23ntp
- 這取決於發行版,但在 Ubuntu 的特殊情況下,您可以將腳本新增至運行等級 1 和 2。
更多資訊在維基百科關於 Ubuntu 運行等級的文章
答案3
1) 多個 rcX.d 目錄指定在「X」運作等級期間啟動或停止哪些服務。
2) rc0.d 用於運行等級 0,即關閉狀態。 rc6.d 用於重新啟動。其餘的則針對不同的運行等級 (2 - 5)。 S 代表開始,K 代表終止。這些本質上是 /etc/rc.d 中原始腳本的連結。 S/K 之後的數字是啟動/終止服務的優先權。
3) 是的,如果多次指定,啟動/終止腳本將運行多次。但沒有人願意這樣做。
4) 查看優先編號,ntp 服務會先啟動,然後是 dovecot。
5)第四點就是這樣。