Centos 啓動過程
linux啓動時我們會看到許多啓動信息、
Linux系統的啓動過程並不是大家想象中的那麼複雜,其過程可以分爲5個階段:
第一步:內核的引導
第二步;運行 init
第三步:系統初始化
第四步:建立終端
第五步;用戶登錄系統
內核引導
當計算機打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啓動設備(通常是硬盤)來啓動。
操作系統接管硬件以後,首先讀入 /boot 目錄下的內核文件。
運行init
init 進程是系統所有進程的起點,你可以把它比擬成系統所有進程的老祖宗,沒有這個進程,系統中任何進程都不會啓動。
init 程序首先是需要讀取配置文件 /etc/inittab。
運行級別
許多程序需要開機啓動。它們在Windows叫做"服務"(service),在Linux就叫做"守護進程"(daemon)。
init進程的一大任務,就是去運行這些開機啓動的程序。
但是,不同的場合需要啓動不同的程序,比如用作服務器時,需要啓動Apache,用作桌面就不需要。
Linux允許爲不同的場合,分配不同的開機啓動程序,這就叫做"運行級別"(runlevel)。也就是說,啓動時根據"運行級別",確定要運行哪些程序
7個運行級別
# 0 - 停機 ,機器關閉。(會導致無法正常啓動系統)
# 1 - 單用戶模式 (單用戶工作狀態,root權限,用於系統維護,禁止遠程登陸)
# 2 - 多用戶,但是沒有NFS 進入無網絡服務的多用戶模式
# 3 - 完全多用戶模式 ,是標準的運行級。
# 4 - 沒有用到 ,一般不用,在一些特殊情況下可以用它來做一些事情。例如在筆記本 電腦的電池用盡時,可以切換到這個模式來
# 5 - X11 ,進到X Window系統了。 登陸後進入圖形GUI模式
# 6 - 重新啓動 ,運行init 6機器就會重啓(默認運行級別不能設爲6)
runlevel 查看運行級別:
修改運行級別:vi /etc/inittab 修改完成需要執行reboot 重啓
另外init 0爲關機,init 6爲重啓系統
系統初始化
在init的配置文件中有這麼一行: si::sysinit:/etc/rc.d/rc.sysinit 它調用執行了/etc/rc.d/rc.sysinit,而rc.sysinit是 一個bash shell的腳本,它主要是完成一些系統初始化的工作,rc.sysinit是每一個運行級別都要首先運行的重要腳本。
它主要完成的工作有:激活交換分區,檢查磁盤,加載硬件模塊以及其它一些需要優先執行任務
cd /etc/rc.d
ll
這一行表示以5爲參數運行/etc/rc.d/rc,/etc/rc.d/rc是一個Shell腳本,它接受5作爲參數,去執行/etc/rc.d /rc5.d/目錄下的所有的rc啓動腳本,/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改變運行級別時,所有相關的守護進程都將重啓。
至於在每個運行級中將運行哪些守護進程,用戶可以通過chkconfig或setup中的"System Services"來自行設定。
建立終端
rc執行完畢後,返回init。這時基本系統環境已經設置好了,各種守護進程也已經啓動了。
init接下來會打開6個終端,以便用戶登錄系統.
用戶登錄系統
一般來說,用戶的登錄方式有三種:
- (1)命令行登錄
- (2)ssh登錄
- (3)圖形界面登錄
對於運行級別爲5的圖形方式用戶來說,他們的登錄是通過一個圖形化的登錄界面。登錄成功後可以直接進入 KDE、Gnome 等窗口管理器。
Linux 關機
在linux領域內大多用在服務器上,很少遇到關機的操作。畢竟服務器上跑一個服務是永無止境的,除非特殊情況下,不得已纔會關機。
正確的關機流程爲:sync > shutdown > reboot > halt
sync 將數據由內存同步到硬盤中。
shutdown 關機指令,你可以man shutdown 來看一下幫助文檔。例如你可以運行如下命令關機:
shutdown –h +10 10 分鐘關閉計算機
shutdown –h 23:55 系統會在今天23:55關機
shutdown -c 取消關機
Shutdown -r now 系統立刻重啓等同reboot 命令
Shutdown -r +10 10 分鐘之後重啓系統
Halt 關閉系統 同時切斷電源
注意:
不管是重啓系統還是關閉系統,首先要運行 sync 命令,把內存中的數據寫到磁盤中
關機的命令有 shutdown –h now halt poweroff 和 init 0 , 重啓系統的命令有 shutdown –r now reboot init 6。
更新學習資料:https://edu.csdn.net/course/detail/28103