centos6.5啟動過程
阿新 • • 發佈:2019-02-04
轉載地址:http://guoting.blog.51cto.com/8886857/1530109
啟動 init 程序
init 程序是系統啟動的第一個程序。其他程序都是有此程序控制fork出來的,也就是說,init是其他程序的“祖先”,PID=1。當然,PID=0程序我們稱為空閒程序是屬於核心的。
init啟動後所做的事情:
1、讀取/etc/inittab來讀取預設級別 假設:讀取到的預設級別是 3
/etc/init/*.conf
- # 啟動級別:(runlevel)
- # 0:關機
- # 1:單使用者模式
- # 2:多使用者模式,不支援 NFS 功能
- # 3:完全多使用者模式,支援文字介面
- # 4:預留模式
- # 5:完全多使用者模式,支援圖形模式
- # 6:關機
- # /etc/inittab檔案格式如下,這是遵循了CentOS5的風格。
- id:3:initdefault:
2、執行初始化系統指令碼 /etc/rc.d/rc.sysinit 來初始化指令碼
這個大家有機會可以讀讀,指令碼主要的作用如下:
- # 獲取網路環境與主機型別。首先會讀取網路環境設定檔案"/etc/sysconfig/network",獲取主機名稱與預設閘道器等網路環境。
- # 答應文字歡迎資訊。
- # 掛載/etc/fstab檔案中定義的其它檔案系統。
- # 啟用swap
- # 檢測根檔案系統,並以讀寫方式重新掛載
- # 決定是否啟動SELinux和udev。
- # 介面裝置的檢測與即插即用(pnp)引數的測試。
- # 使用者自定義模組的載入。使用者可以再"/etc/sysconfig/modules/*.modules"加入自定義的模組,此時會載入到系統中。
- # 載入核心的相關設定。按"/etc/sysctl.conf"這個檔案的設定值配置功能。
- # 設定系統時間(clock)。
- # 設定終端的控制檯的字形。
- # 設定raid及LVM等硬碟功能。
- # 以方式檢視檢驗磁碟檔案系統。
- # 進行磁碟配額quota的轉換。
- # 重新以讀取模式載入系統磁碟。
- # 啟動quota功能。
- # 啟動系統隨機數裝置(產生隨機數功能)。
- # 清楚啟動過程中的臨時檔案。
- # 將啟動資訊載入到"/var/log/dmesg"檔案中。
3、然後執行 /etc/rc.d/rc 指令碼
此指令碼執行的時候此指令碼的時候,會讀取/etc/rc.d/rc3.d/下的所有指令碼,來控制系統啟動的時候啟動或者關閉那些服務
- # 這裡面的指令碼大致分為 2 類,以 S 開頭的和以 K 開頭的指令碼。
- # S 代表開機時啟動的,K 表示開機時不啟動。
- # 每個檔案的命名格式,例如:S01sysstat S 開機啟動 01 啟動次序 sysstat 啟動指令碼名
- # 啟動的定義是在每個指令碼中定義的:例如
- # # chkconfig: - 85 15
- # 預設級別 啟動次序 不啟動次序
這些指令碼是否開機自啟動,可由 chkconfig 命令來管理。
- # 常用選項:
- # chkconfig --add SRV_SCRIPT 可以將自己寫的一些指令碼,讓此命令統一管理。例如:chkconfig --add httpd
- # chkconfig --del SRV_SCRIPT 將服務刪除,意思就是服務不由chkconfig這種機制來管理
- # chkconfig SRV_SCRIPT {on|off} 設定服務開機是否自啟動,預設管理的級別是2345.
- # --level 2345 等,指定預設級別,可以與其他選項一起使用
4、執行/etc/rc.d/rc.local指令碼,此指令碼是啟動過程中最後啟動的一個指令碼。
最後會執行 /bin/login 登入使用者。至此係統啟動過程完成。