linux直接進入登陸頁面,不能進入vi(解析/etc/inittab)

 linux 默認運行級別爲5,改爲3,通過/etc/inittab來更改默認運行級別的!運行級就是操作系統當前正在運行的功能級別。

  簡單的說,運行級就是操作系統當前正在運行的功能級別。這個級別從16 ,具有不同的功能。  不同的運行級定義如下:(可以參考Red Hat Linux 裏面的/etc/inittab   

  # 0 - 停機(千萬不能把initdefault 設置爲0   

  # 1 - 單用戶模式   

  # 2 - 多用戶,沒有 NFS   

  # 3 - 完全多用戶模式(標準的運行級)   

  # 4 - 沒有用到   

  # 5 - X11 xwindow)   

  # 6 - 重新啓動 (千萬不要把initdefault 設置爲6   

  這些級別在/etc/inittab 文件裏指定。這個文件是init 程序尋找的主要文件,最先運行的服務是放在/etc/rc.d 目錄下的文件。在大多數的Linux 發行版本中,啓動腳本都是位於 /etc/rc.d/init.d中的。這些腳本被用ln 命令連接到 /etc/rc.d/rcn.d 目錄。(這裏的n 就是運行級0-6)

 

1 什麼時候會用到/etc/inittab?

   Linux在完成核內引導以後,就開始運行init程序,它的進程號是1,是所有其他進程的起點。

   init需要讀取/etc/inittab,該文件告訴init在它的每個運行級別上需要做哪些事情。

2 init共定義了七個運行級(run level),分別是什麼?

   # Default runlevel. The runlevels used by RHS are:
   #   0 - halt (Do NOT set initdefault to this)
   #   1 - Single user mode
   #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
   #   3 - Full multiuser mode
   #   4 - unused
   #   5 - X11
   #   6 - reboot (Do NOT set initdefault to this)
  

   0 - 完全關閉系統的級別

   1 - 單用戶模式

   2~5 - 多用戶級別,5 爲X Windows的登錄進程

   6 - 重新引導級別

3 /etc/inittab如何定義系統默認的級別?

   其實,在/etc/inittab的開頭就定義了系統默認啓動到的級別,如:

   id:3:initdefault:

   id - 用來定義缺省的init運行的級別

   3 - 默認的級別爲此 (Full multiuser mode)

   initdefault - 是關鍵字,表示默認的級別。

   系統管理員可以通過修改這條語句方便地修改默認的運行級別。

   在機器引導時,init從運行級0開始,一級一級往上運行到在/etc/inittab中所設置的默認運行級別。爲了完成在每一對相鄰運行級別之間的過渡,init運行在/etc/inittab中爲這種過渡而說明的一些操作。當機器關閉時,以相反的順序執行同樣的處理過程。

  

4 init執行的第一個腳本是什麼?

   馬上/etc/inittab給出了init進程執行的第一個腳本。

   si::sysinit:/etc/rc.d/rc.sysinit

   對於Redhat來說,執行的順序爲:
   1) /etc/rc.d/rc.sysinit # 由init執行的第一腳本
   2) /etc/rc.d/rc $RUNLEVEL # init執行指定運行級別($RUNLEVEL爲缺省的運行模式)的各腳本;
   3) /etc/rc.d/rc.local #運行模式2、3、5時會運行的腳本
   4) /sbin/mingetty(或getty) # 等待用戶登錄

5 七個運行級別需要啓動的服務有所不同,它們在/etc/inittab中都有定義。

   l0:0:wait:/etc/rc.d/rc 0
   l1:1:wait:/etc/rc.d/rc 1
   l2:2:wait:/etc/rc.d/rc 2
   l3:3:wait:/etc/rc.d/rc 3
   l4:4:wait:/etc/rc.d/rc 4
   l5:5:wait:/etc/rc.d/rc 5
   l6:6:wait:/etc/rc.d/rc 6

   如果之前指定的默認運行級別是3,那麼init就要執行/etc/rc.d/rc3.d目錄中的腳本。

   /etc/rc.d/rc5.d/目錄中的這些啓動腳本實際上都是一些鏈接文件,而不是真正的rc啓動腳本,真正的rc啓動腳本實際上都  是放在/etc/rc.d/init.d/目錄下。而這些rc啓動腳本有着類似的用法,它們一般能接受start、stop、restart、status等參數。
   /etc/rc.d/rc5.d/中的rc啓動腳本通常是K或S開頭的鏈接文件,對於以以S開頭的啓動腳本,將以start參數來運行。而如果發現存在相應的腳本也存在K打頭的鏈接,而且已經處於運行態了(以/var/lock/subsys/下的文件作爲標誌),則將首先以stop爲參數停止這些已經啓動了的守護進程,然後再重新運行。這樣做是爲了保證是當init改變運行級別時,所有相關的守護進程都將重啓。

6 與啓動或者重啓相關的設置

   # 在啓動過程中允許按CTRL-ALT-DELETE重啓系統
   # Trap CTRL-ALT-DELETE
   ca::ctrlaltdel:/sbin/shutdown -t3 -r now
  
 # When our UPS tells us power has failed, assume we have a few minutes
 # of power left. Schedule a shutdown for 2 minutes from now.
 # This does, of course, assume you have powerd installed and your
 # UPS connected and working correctly.
 pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
  
 # If power was restored before the shutdown kicked in, cancel it.
 pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled
 

7 建立終端

   rc執行完畢後,返回init。這時基本系統環境已經設置好了,各種守護進程也已經啓動了。init接下來會打開6個終端,以便用戶登錄系統。通過按Alt+Fn(n對應1-6)可以在這6個終端中切換。在inittab中的以下6行就是定義了6個終端:

      1:2345:respawn:/sbin/mingetty tty1
  2:2345:respawn:/sbin/mingetty tty2
  3:2345:respawn:/sbin/mingetty tty3
  4:2345:respawn:/sbin/mingetty tty4
  5:2345:respawn:/sbin/mingetty tty5
  6:2345:respawn:/sbin/mingetty tty6

      從上面可以看出在2、3、4、5的運行級別中都將以respawn方式運行mingetty程序,mingetty程序能打開終端、設置模式。同時它會顯示一個文本登錄界面,這個界面就是我們經常看到的登錄界面,在這個登錄界面中會提示用戶輸入用戶名,而用戶輸入的用戶將作爲參數傳給login程序來驗證用戶的身份。

8 最後如果我們使用的是 run level 5 ,那麼除了這六個終端機之外, init 還會執行/etc/X11/prefdm -nodaemon 其主要的功能就是在啓動 X Window   

  # Run xdm in runlevel 5
  x:5:respawn:/etc/X11/prefdm -nodaemon

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章