1. 程式人生 > 其它 >Linux設定開機啟動級別

Linux設定開機啟動級別

linux系統開機流程

1. 機器開機通電bios質檢,質檢通過後,bios會根據boot選單,選擇從硬碟啟動。

2. 讀取硬碟中的MBR(主引導記錄),載入載入程式(linux中是grub),grub程式會載入系統kernel和虛擬檔案系統。

3. 系統會執行init程式,該程序會讀取/etc/inittab配置檔案,決定執行級別,執行/etc/rc.d/rc.sysinit指令碼對系統進行初始化,該指令碼會設定系統時間,主機名,開啟卷管理,以讀寫的方式重掛root檔案系統,掛載本地檔案系統,開啟本地磁碟配額,開啟交換空間。

4. 執行該執行級別下的/etc/rc.d/rcN.d/下的指令碼,開啟系統服務程序。

5. 讀取/etc/rc.d/rc.local下的命令,並逐條執行。

6. 啟動虛擬終端,進入登入介面。

執行級別

Linux系統有7個執行級別(runlevel),分別對應etc/下的rc*.d檔案:

  執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動

  執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸

  執行級別2:多使用者狀態(沒有NFS)

  執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式

  執行級別4:系統未使用,保留

  執行級別5:X11控制檯,登陸後進入圖形GUI模式

  執行級別6:系統正常關閉並重啟,預設執行級別不能設為6,否則不能正常啟動

執行級別的原理

1.在目錄/etc/rc.d/init.d下有許多伺服器指令碼程式,一般稱為服務(service)(注:自己常用的有/etc/init.d/network...)

2.在/etc/rc.d下有7個名為rcN.d的目錄,對應系統的7個執行級別

3.rcN.d目錄下都是一些符號連結檔案,這些連結檔案都指向init.d目錄下的service指令碼檔案,命名規則為K+nn+服務名或S+nn+服務名,其中nn為兩位數字。

4.系統會根據指定的執行級別進入對應的rcN.d目錄,並按照檔名順序檢索目錄下的連結檔案

  1)對於以K開頭的檔案,系統將終止對應的服務

  2)對於以S開頭的檔案,系統將啟動對應的服務

5.檢視執行級別用:runlevel

6.進入其它執行級別用:initN

7.另外init0為關機,init6為重啟系統。

init檔名,指的是系統啟動的第一個指令碼 init.d目錄名,目錄內放的是各個服務的啟動指令碼,比如sshd、httpd等 rc.local連結檔案,指到/etc/rc.d/rc.local。是系統初始化及服務均啟動完畢後,最後執行的一個指令碼,一些簡單的指令碼可以放到其中 rcX.d目錄名,後面的X代表著每個執行級別。目錄內有每個服務在init.d內啟動指令碼的連結檔案,根據連結檔案的名字來的啟動狀態。K開頭表示不啟動服務,S打頭表示啟動服務

本文來自部落格園,作者:Jcpeng_std,轉載請註明原文連結:https://www.cnblogs.com/JCpeng/p/15208121.html