Services

/etc 中的 rc0.d,rc1.d,… 目錄

  • July 2, 2019

我正在執行 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

問題:

  1. 多個“rc”目錄的目的是什麼?
  2. 為什麼 Ubuntu在除and之外的所有目錄中都安裝了dovecotand的副本?ntp``rc0.d``rc6.d
  3. 如果像上面一樣多次指定它們,它們實際上是否執行了多次?
  4. 你能從上面知道按什麼順序執行,dovecotntp在啟動時執行嗎?
  5. 告訴 Ubuntu在啟動ntp前始終執行的正確方法是什麼?dovecot
  1. 這些是runlevels 並且是大多數 *NIX 系統使用的 System V 風格的啟動(除了systemd基於 - 的系統)。當引導核心/使用者決定runlevel它應該執行什麼並且只執行那個runlevel. 這意味著runlevel您可以使用一組不同的程序啟動。也有用於停止和重新啟動的執行級別,但是由於您專注於啟動部分,所以我們暫時忽略它們。
  2. 由於runlevel在啟動時只執行一個,因此某些程序應該/想要以runlevel相同或不同的順序在具有不同或相同參數的不同 s 處啟動/停止(並非所有作業系統中的所有執行級別都相同)。但是 Ubuntu 從 2 複製執行級別 3-5,這就是它們相同的原因。
  3. No.runlevel只在啟動時或更改時執行一次runlevel
  4. ntp腳本應首先執行,然後dovecot在執行級別 2-5 中執行,而不是執行級別 1。腳本名稱中的序號 ( ) 表示執行順序。因此,這完全取決於您使用的執行級別。S**23**ntp
  5. 這取決於發行版,但在 Ubuntu 的特定情況下,您可以將腳本添加到執行級別 1 和 2。

有關 Ubuntu 執行級別的Wikipedia文章中的更多資訊

正如其他人所指出的,答案都是關於執行級別,它們基本上是作業系統的操作模式。在 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.

引用自:https://unix.stackexchange.com/questions/83748