下面是一張Linux啟動流程圖:
在了解啟動流程之前,我們應該先知道系統的幾個重要腳本和配置文件,他們對應的路徑為:
1. /sbin/init
2. /etc/inittab
3. /etc/rc.d/rc.sysinit
4. /etc/rc.d/rcN.d //這是幾個文件夾N代表數字1,2,3,4..
5. /etc/fstab
1.關於/sbin/init與/etc/inittab
關於/sbin/init ,它是一個二進制可執行文件,為系統的初始化程序,而/etc/inittab是它的配置文件,我們可以通過/etc/inittab來一睹 它的功能, 裡面的內容是一種固定的文本格式,id:runlevels:action:process
我們來通過它的內容來學習它之前,先了解寫運行級別的分類(0-6):
0: 關機 half
1: 單用戶模式 singel user
2: 多用戶模式 multi user , 不提供nfs服務 without nfs
3: 完全多用戶字符模式 full multiuser text mod
4: 系統預留 officially undefined
5: 圖形登錄界面 graphical login
6: 重啟 reboot
- id:3:initdefault: //這裡定義linux的啟動時的運行級別,可以看到我的主機的啟動級別是3
- # System initialization.
- si::sysinit:/etc/rc.d/rc.sysinit //緊接著,運行系統第一個腳本/etc/rc.d/rc/sysinit
- //它的action:sysyinit指的是定義系統初始化過程
- l0:0:wait:/etc/rc.d/rc 0
- l1:1:wait:/etc/rc.d/rc 1
- l2:2:wait:/etc/rc.d/rc 2 //然後就是加載服務了,他們被定義在/etc/rc.d/rcN.d
- l3:3:wait:/etc/rc.d/rc 3 //action:waite 這個進程在在對應級別啟動一次,知道它結束為止,我的系統啟動級別為3,所有執行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
-
- ca::ctrlaltdel:/sbin/shutdown -t3 -r now //這裡定義了一個組合快捷鍵,熟悉吧,沒錯就是重啟,你可以把它注釋掉不用
- pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" //這裡定義了ups電源,powerfail 指的是如果突然斷電,它對應的process命令是,提示用戶系統電源失效,將要關機,提醒用戶把數據都存儲好
- pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" //這裡的action,powerokwaite,指的是系統恢復供電,關機取消...
-
- 1:2345:respawn:/sbin/mingetty tty1 //開啟終端,在系統准備工作做好後,就會啟動出6個終端,tty1~6 mingetyy就是終端的執行命令
- 2:2345:respawn:/sbin/mingetty tty2 //可以看到他們對應的級別是2345,你也可以注釋掉幾個,這樣啟動後,就會開啟你指定個數的終端...
- 3:2345:respawn:/sbin/mingetty tty3 //這裡的動作respawn意思是如果用戶關閉,那麼這個進程會立刻再次執行
- 4:2345:respawn:/sbin/mingetty tty4
- 5:2345:respawn:/sbin/mingetty tty5
- 6:2345:respawn:/sbin/mingetty tty6
- x:5:respawn:/etc/X11/prefdm -nodaemon //當一切准備完畢,就會運行守護進程,它是不分運行級別的,同樣也是respawn