Linux執行級詳解(轉)

BSDLite發表於2007-08-11
Linux執行級詳解(轉)[@more@]   對於那些在DOS/Win9x/NT平臺下的高階使用者而言,Linux似乎是一個怪物。沒有config.sys,沒有 autoexec.bat,具有個人特色的機器配置不知道從何開始。

   需要說明的是,很多人認為Linux是Unix的一個克隆,但是,這種說法對於Linux是不公平的。Linux比Unix更加開放,功能更強大。我們應該稱之為GNU/Linux 。

   Linux啟動時,執行一個叫做init的程式,然後由它來啟動後面的任務,包括多使用者環境、網路等。

   那麼,到底什麼是執行級呢?簡單的說,執行級就是作業系統當前正在執行的功能級別。這個級別從1到6 ,具有不同的功能。這些級別在/etc/inittab檔案裡指定。這個檔案是init程式尋找的主要檔案,最先執行的服務是那些放在/etc/rc.d 目錄下的檔案。

   大多數的Linux發行版本中,啟動指令碼位於/etc/rc.d/init.d。這些指令碼被ln命令來連線到 /etc/rc.d/rcn.d目錄。(這裡的n 就是執行級0-6) 例如/etc/rc.d/rc2.d下面的S10network就是連線到/etc/rc.d/init.d下的network指令碼的。

   因此,我們可以知道,rc2.d下面的檔案就是和執行級2有關的。檔案開頭的S代表start就是啟動服務的意思,後面的數字10就是啟動的順序。例如,在同一個目錄下,你還可以看到S80postfix這個檔案,80就是順序在10以後,因為沒有啟動網路的情況下,啟動postfix是沒有任何作用的。

   再看一下/etc/rc.d/rc3.d,可以看到檔案S60nfslock,但是這個檔案不存在於/etc/rc.d/rc2.d目錄下。NFS要用到這個檔案,一般用在多使用者環境下,所以放在rc3.d目錄下。

   另外,在/etc/rc.d/rc2.d還可以看到那些K開頭的檔案,例如/etc/rc.d/rc2.d/K45named,K代表kill。

   標準的Linux執行級為3或者5,如果是3的話,系統就在多使用者狀態。如果是5的話,則是執行著X Window 系統。如果目前正在3或5,而你把執行級降低到2的話,init就會執行K45named指令碼。

   不同的執行級定義如下:(可以參考Red Hat Linux裡面的/etc/inittab)

   # 預設的執行級,RHS用到的級別如下:
   # 0 - 停機(千萬不要把initdefault設定為0 )
   # 1 - 單使用者模式
   # 2 - 多使用者,但是沒有NFS
   # 3 - 完全多使用者模式
   # 4 - 沒有用到
   # 5 - X11
   # 6 - 重新啟動(千萬不要把initdefault設定為6 )

   # 對各個執行級的詳細解釋:
   0 為停機,機器關閉。
   1 為單使用者模式,就像Win9x下的安全模式類似。
   2 為多使用者模式,但是沒有NFS支援。
   3 為完整的多使用者模式,是標準的執行級。
   4 一般不用,在一些特殊情況下可以用它來做一些事情。例如在膝上型電腦的電池用盡時,可以切換到這個模式來做一些設定。
   5 就是X11,進到X Window系統了。
   6 為重啟,執行init 6機器就會重啟。

   不同的執行級有不同的用處,也應該根據自己的不同情形來設定。例如,如果丟失了root口令,那麼可以讓機器啟動進入單使用者狀態來設定。在啟動後的lilo提示符下輸入:

   init=/bin/sh rw

   就可以使機器進入執行級1 ,並把root檔案系統掛為讀寫。它會跳過所有系統認證,讓你使用passwd程式來改變root口令,然後啟動到一個新的執行級。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-947415/,如需轉載,請註明出處,否則將追究法律責任。

相關文章