1. 程式人生 > >centos6.5啟動過程

centos6.5啟動過程

轉載地址:http://guoting.blog.51cto.com/8886857/1530109

啟動 init 程序

init 程序是系統啟動的第一個程序。其他程序都是有此程序控制fork出來的,也就是說,init是其他程序的“祖先”,PID=1。當然,PID=0程序我們稱為空閒程序是屬於核心的。

init啟動後所做的事情:

1、讀取/etc/inittab來讀取預設級別 假設:讀取到的預設級別是 3

/etc/init/*.conf

  1. # 啟動級別:(runlevel)  
  2. # 0:關機  
  3. # 1:單使用者模式  
  4. # 2:多使用者模式,不支援 NFS 功能  
  5. # 3:完全多使用者模式,支援文字介面  
  6. # 4:預留模式  
  7. # 5:完全多使用者模式,支援圖形模式  
  8. # 6:關機  
  9. # /etc/inittab檔案格式如下,這是遵循了CentOS5的風格。  
  10. id:3:initdefault: 

2、執行初始化系統指令碼 /etc/rc.d/rc.sysinit 來初始化指令碼

這個大家有機會可以讀讀,指令碼主要的作用如下:

  1. # 獲取網路環境與主機型別。首先會讀取網路環境設定檔案"/etc/sysconfig/network",獲取主機名稱與預設閘道器等網路環境。  
  2. # 答應文字歡迎資訊。  
  3. # 掛載/etc/fstab檔案中定義的其它檔案系統。  
  4. # 啟用swap  
  5. # 檢測根檔案系統,並以讀寫方式重新掛載  
  6. # 決定是否啟動SELinux和udev。  
  7. # 介面裝置的檢測與即插即用(pnp)引數的測試。  
  8. # 使用者自定義模組的載入。使用者可以再"/etc/sysconfig/modules/*.modules"加入自定義的模組,此時會載入到系統中。  
  9. # 載入核心的相關設定。按"/etc/sysctl.conf"這個檔案的設定值配置功能。  
  10. # 設定系統時間(clock)。  
  11. # 設定終端的控制檯的字形。  
  12. # 設定raid及LVM等硬碟功能。  
  13. # 以方式檢視檢驗磁碟檔案系統。  
  14. # 進行磁碟配額quota的轉換。  
  15. # 重新以讀取模式載入系統磁碟。  
  16. # 啟動quota功能。  
  17. # 啟動系統隨機數裝置(產生隨機數功能)。  
  18. # 清楚啟動過程中的臨時檔案。  
  19. # 將啟動資訊載入到"/var/log/dmesg"檔案中。 

3、然後執行 /etc/rc.d/rc 指令碼

此指令碼執行的時候此指令碼的時候,會讀取/etc/rc.d/rc3.d/下的所有指令碼,來控制系統啟動的時候啟動或者關閉那些服務

wKiom1PSA-mDbCDSAAZ9kiqbBP4645.jpg

  1. # 這裡面的指令碼大致分為 2 類,以 S 開頭的和以 K 開頭的指令碼。  
  2. # S 代表開機時啟動的,K 表示開機時不啟動。  
  3. # 每個檔案的命名格式,例如:S01sysstat S 開機啟動 01 啟動次序 sysstat 啟動指令碼名  
  4. # 啟動的定義是在每個指令碼中定義的:例如  
  5. # # chkconfig: - 85 15  
  6. # 預設級別 啟動次序 不啟動次序 

這些指令碼是否開機自啟動,可由 chkconfig 命令來管理。

  1. # 常用選項:  
  2. # chkconfig --add SRV_SCRIPT 可以將自己寫的一些指令碼,讓此命令統一管理。例如:chkconfig --add httpd  
  3. # chkconfig --del SRV_SCRIPT 將服務刪除,意思就是服務不由chkconfig這種機制來管理  
  4. # chkconfig SRV_SCRIPT {on|off} 設定服務開機是否自啟動,預設管理的級別是2345.  
  5. # --level 2345 等,指定預設級別,可以與其他選項一起使用 

4、執行/etc/rc.d/rc.local指令碼,此指令碼是啟動過程中最後啟動的一個指令碼。

最後會執行 /bin/login 登入使用者。至此係統啟動過程完成。