F.4. SysV Init Runlevel

SysV init runlevel 提供了一個控制標準程序,以便控制讓 init 在一個 runlevel 被啟用時可決定要啟動或停止哪項程式。選用了 SysV init 原因為其操作容易而且比起傳統 BSD 形式,init 程序更為靈活。
SysV init 的配置檔位於 /etc/rc.d/ 目錄中。此目錄中包含了 rcrc.localrc.sysinit 和可選用的 rc.serial scripts,以及下列其它目錄:
init.d/ rc0.d/ rc1.d/ rc2.d/ rc3.d/ rc4.d/ rc5.d/ rc6.d/
init.d/ 目錄包含了當控制服務時,/sbin/init 指令所使用的 script。各個已編號的目錄都代表了六個在 Red Hat Enterprise Linux 中,由預設值所配置的 runlevel。

F.4.1. Runlevels

SysV init runlevel 的概念環繞在一個不同的系統可能有不同的方式這個觀點上。例如,一個伺服器能夠在 X 視窗系統下不拖延使用系統資源,並有效率地執行。或是有時候,系統管理員會需要在較低的 runlevel 系統下進行作業,以執行檢測工作項目,例如在 runlevel 1 中修復磁碟毀損。
Runlevel 的特性在於 init 可決定該停止和啟用哪個服務項目。比方說,runlevel 1(單機使用者模式)會停用所有網路服務項目,而 runlevel 3 卻會啟動這些網路服務項目。透過在一個特定的 runlevel 上指定停止或啟用特定服務項目,init 能快速地更換機器的模式,而不需要使用者手動式地停止或啟動服務項目。
以下 runlevel 在 Red Hat Enterprise Linux 下定義為預設值:
  • 0 — 停止
  • 1 — 單機使用者文字模式
  • 2 — 尚未使用(使用者定義)
  • 3 — 完整多機使用者文字模式
  • 4 — 尚未使用(使用者定義)
  • 5 — 完整多機使用者圖形模式(含有基於 X 的登入畫面)
  • 6 — 重新啟動
就基本而言,使用者會在 runlevel 3 或 5 之下操作 Red Hat Enterprise Linux — 兩者皆為完整多機使用者模式。因為 runlevel 2 和 4 尚未被使用,因此使用者有時可依照需求自訂 runlevel 2 和 4。
系統的預設 runlevel 列在 /etc/inittab 中。欲找出系統的預設 runlevel,請搜尋位於 /etc/inittab 下方附近,與下列類似的一行:
id:5:initdefault:
在此範例中的預設 runlevel 是 5,如第一個冒號後面所示。若要更改它,請以 root 身份編輯 /etc/inittab

警告

在編輯 /etc/inittab 時請特別注意。即使是些微的錯字也會造成系統無法啟動。如果上述情況發生,請使用開機光碟進入單機使用者模式,或進入救援模式來啟動電腦並修復該檔案。
欲取得更多有關於單機使用者和救援模式的相關訊,請參閱〈章 36, 基本系統復原〉章節。
您可以在開機時藉由 kernel 的開機載入程式修改引數來更改預設的 runlevel。欲取得更多有關於在開機時更改 runlevel 上的相關資訊,請參照 節 E.9, “在開機時更換執行層級”