Linux:運行層級與重新啟動(1)

來源:互聯網
上載者:User

學習關閉或重啟您的 Linux 系統,警告使用者系統正在關閉,切換到一個多少有點限制性的運行層級。這一流程對於許多Linux 愛好者來說,還很陌生。下面請IBM的進階程式員Ian Shields具體介紹下Linux的運行層級、關機和重新啟動。

概述

在本文中,學習關閉或重啟您的 Linux 系統,警告使用者系統正在關閉,請切換到單一使用者模式或者一個多少有點限制性的運行層級。學習:

•設定預設運行層級

•運行層級間的變化

•改為單一使用者模式

•從命令列關閉或重啟系統

•警告使用者主要系統事件,包括切換到另一個運行層級

•適當地終止進程

除非特殊說明,本文中的樣本使用帶有 2.6.26 核心的 Fedora 8。upstar 樣本使用的是帶有 2.6.34 核心的 Fedora 13,或者是帶有 2.6.35 核心的 Ubuntu 10.10。您的結果在其他系統上可能有所不同。

先決條件

為了最有效地利用本系列中的文章,您應該具有基本的 Linux 知識,並需要準備一個 Linux 系統,用於練習本文介紹的命令。有時候不同版本的程式輸出格式不同,因此您所得到的結果未必總是與這裡所示的清單和圖相同。特別是,最近出現的系統已經改變了很多傳統 System V init 進程使用者所熟悉的內容(更多細節見 Init vs. Upstart)。本文是針對傳統 System V init 進程的,只對 upstar 的區別進行了粗略的概述。

運行層級

運行層級 定義了在 Linux 系統的目前狀態(或運行層級)可以完成的任務。每個 Linux 系統支援 3 個基本運行層級,外加一個或多個用於正常操作的運行層級。基本運行層級如 表 1 所示。

表 1. Linux 基本運行層級
層級

目的

0 關閉(或終止)系統
1 單一使用者模式:通常又稱為 s 或 S
6 重啟系統

除了這些基本的運行層級之外,各個發行版之間的運行層級使用也有所不同。一個命令使用集合如 表 2 所示。

表 2. 其他命令 linux 運行層級

層級

目的
2

沒有網路的多使用者模式

3

有網路的多使用者模式

5

有網路和 X Window System 的多使用者模式

Slackware 發布版使用運行層級 4 而不是 5,因為整個系統正運行 X Window 系統。Debian 及其衍生產品,比如 Ubuntu,對於任何多使用者模式都使用單個運行層級,通常是運行層級 2。務必查閱您版本的文檔。

預設運行層級

當一個 Linux 系統啟動時,預設運行層級由 /etc/inittab 下的 id: 條目確定。 清單 1 說明了一個系統(比如 Fedora 8 或 openSUSE 11.2)典型條目,這兩個系統都是為 X Window System 使用運行層級 5。

清單 1.  /etc/inittab 中的預設運行層級

[root@pinguino ~]# grep "^id:" /etc/inittab
id:5:initdefault:

如果您想要您的系統以不同的運行層級啟動,比如說運行層級 3,編輯該值。

改變運行層級

有好幾種方法可以改變運行層級。為了進行一個永久的改變,您可以編輯 /etc/inittab 並改變預設運行層級,正如您剛才在上面看到的。

如果您只需要在一次引導中將您的系統提升到一個不同的運行層級,您可以這樣做。例如,假設您剛剛安裝了一個新核心,在使用新核心重啟系統後需要建立一些核心模組,但是應該在啟動 X Window System 之前。您可能想要將您的運行層級提升為層級 3 來完成這一任務。您可以通過編輯核心線(GRUB)或在選擇的系統名後(LILO)添加一個參數來在引導時進行這一操作。使用一個一位元來指出期望的運行層級(在這裡是 3)。我們將通過一個 GRUB 執行個體來介紹具體過程。假設您的 /boot/grub/menu.lst 檔案含有 清單 2 所示的片段。

清單 2.  啟動 Fedora 8 的典型 GRUB 片段

title Fedora (2.6.26.8-57.fc8)root (hd0,5)kernel /boot/vmlinuz-2.6.26.8-57.fc8 ro root=LABEL=FEDORA8 rhgb quietinitrd /boot/initrd-2.6.26.8-57.fc8.img

要想讓系統升級到運行層級 3,等待直至引導項出現,選擇這個條目然後輸入 ‘e’ 來編輯這個條目。根據您的 GRUB 選項,您可能需要按下一個鍵來顯示引導項,然後也輸入一個 ‘p’ 和一個密碼來解鎖編輯。Fedora 8 系統上 GRUB 螢幕看起來像 圖 1 這樣。

圖 1.  在 GRUB 中選擇一個引導選項

在這個樣本中,您現在應該可以看到以 root、kernel、initrd 開始的行出現。將游標移動到以 “kernel” 開始的行,然後輸入 ‘e’ 來編輯這一行。Fedora 8 系統上的 GRUB 螢幕現在如 圖 2 所示。

圖 2. 選擇核心項進行編輯

最後將游標移動到這一行的末尾,然後添加一個空格和數字 ‘3’。如果需要的話您可以刪除 ‘quiet’,或者根據需要修改任何其他參數。Fedora 8 系統上的 GRUB 螢幕現在如 圖 3 所示。

圖 3.  設定啟動運行層級為 3

最後,按下 Enter 鍵來儲存修改,然後輸入 ‘b’ 來引導系統。

注意: 使用 LILO 或 GRUB2 和使用 GRUB 的步驟有所不同,但是編輯核心啟動方法的基本原理是一樣的,即使其他系統或其他版本上的 GRUB 介面和這裡所顯示的介面大不相同。提示資訊通常會對您有所協助。

當您在運行層級 3 下完成了您的安裝工作時,您可能想要切換到運行層級 5。幸運的是,您不需要重啟系統。您可以使用 telinit 命令來切換到另一個運行層級。使用 runlevel 命令可以顯示之前和目前的運行層級。如果輸出的一個字元是 ‘N’,運行層級還不能改變,因為系統正在被引導。 清單 3 顯示了驗證和更改運行層級。

清單 3. 驗證和更改運行層級

[root@pinguino ~]# runlevelN 3[root@pinguino ~]# telinit 5

輸入 telinit 5 之後您將看到幾個訊息一閃而過,您的介面將切換到已配置的圖形化登入介面。開啟一個終端視窗,然後驗證運行層級是否已經修改,如 清單 4 所示。

清單 4.確認新的運行層級

[root@pinguino ~]# runlevel3 5

如果您使用 ls 命令來顯示一個很長的 telinit 命令清單,您將看到它實際上是一個連結到 init 命令的符號連結。我們將在 清單 5 中對此作一說明。

清單 5.  telinit 只是一個連結到 init 的符號連結

[root@pinguino ~]# ls -l $(which telinit)lrwxrwxrwx 1 root root 4 2008-04-01 07:50 /sbin/telinit -> init

可執行檔 init 知道它是否稱為 init 或 telinit,然後進行相應調整。因為 init 作為 PID 1 在引導時運行,它也非常智能,知道您隨後什麼時候會使用 init 調用它,而不是使用 telinit。如果您這樣做了,它就會假設您希望它表現得像已經調用了 telinit。例如,您可能會使用 init 5 而不是 telinit 5 來切換到運行層級 5。

單一使用者模式

相比個人電腦作業系統,比如 DOS 或 Windows,Linux 本身是一個多使用者系統。然而,有時候這可能會成為一個問題,比如,當您需要恢複一個重要檔案系統或者資料庫時,或者安裝和測試某個新軟體時。運行層級 1,單一使用者模式 是您在這些情況下的最佳答案。實際實現根據不同版本有所變化,但是您通常只使用一個很小的系統簡單地啟動。通常這裡沒有連網,沒有(或者非常少)守護進程運行。在一些系統上,您必須通過登入來進行認證,但在其他系統上您可以直接以根使用者開始操作 shell 提示符。單一使用者模式可能是一個救生圈,也可能是毀壞您的系統,因此,不管任何時候,當您使用根使用者許可權時都應該小心注意。完成後立即重新啟動到一個正常多使用者模式。

和切換到正常多使用者運行層級一樣,您也可以使用 telinit 1 切換到單一使用者模式。正如 表 1 所述,‘s’ 和 ‘S’ 是運行層級 1 的別名,因此您可以使用 telinit s 來代替。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.