Linux入門之系統啓動及服務管理

Linux入門之系統啟動及服務管理

系統啟動

1.當計算機打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啟動項來啟動操作系統

Linux入門之系統啟動及服務管理

2.加載內核

操作系統接管硬件以後,首先讀入 /boot 目錄下的內核文件。

Linux入門之系統啟動及服務管理

3.啟動初始化進程

內核文件加載以後,就開始運行第一個程序 /sbin/init,它的作用是初始化系統環境。init是第一個運行的程序,其他所有進程都從它衍生,都是它的子進程。。

Linux入門之系統啟動及服務管理

4.確定運行級別

許多程序需要開機啟動。它們在Windows叫做"服務"(service),在Linux就叫做"守護進程"(daemon)。init進程的一大任務,就是去運行這些開機啟動的程序。但是,不同的場合需要啟動不同的程序,比如用作服務器時,需要啟動Apache,用作桌面就不需要。Linux允許為不同的場合,分配不同的開機啟動程序,這就叫做"運行級別"(runlevel)。也就是說,啟動時根據"運行級別",確定要運行哪些程序。

Linux入門之系統啟動及服務管理

Linux預置七種init運行級別(0-6): 0:關機模式 ,系統默認運行級別不能設為0,否則不能正常啟動 (相當於poweroff)

1:單用戶模式(破解root密碼的方法:)

開機時隨便按一個按鍵 然後按e 進入選擇界面選擇第二個 按e 輸入single 返回以後按b重啟 進入單用戶模式

Linux入門之系統啟動及服務管理

Linux入門之系統啟動及服務管理

Linux入門之系統啟動及服務管理

Linux入門之系統啟動及服務管理

2:無網絡支持的多用戶模式 3:有網絡支持的多用戶模式(也就是文本模式,工作中最常用的模式) 4:保留,未使用 5:X11控制檯,登陸後進入圖形GUI模式(也就是桌面圖形模式) 6: 重新引導系統,即重啟 (相當於reboot)

5.加載開機啟動程序

前面提到,七種預設的"運行級別"各自有一個目錄,存放需要開機啟動的程序。不難想到,如果多個"運行級別"需要啟動同一個程序,那麼這個程序的啟動腳本,就會在每一個目錄裡都有一個拷貝。這樣會造成管理上的困擾:如果要修改啟動腳本,豈不是每個目錄都要改一遍?Linux的解決辦法,就是七個 /etc/rcN.d 目錄裡列出的程序,都設為鏈接文件,指向另外一個目錄 /etc/init.d ,真正的啟動腳本都統一放在這個目錄中。init進程逐一加載開機啟動程序,其實就是運行這個目錄裡的啟動腳本。這樣做的另一個好處,就是如果你要手動關閉或重啟某個進程,直接到目錄 /etc/init.d 中尋找啟動腳本即可。

Linux入門之系統啟動及服務管理

6.用戶登錄

開機啟動程序加載完畢以後,就要讓用戶登錄了。

Linux入門之系統啟動及服務管理

一般來說,用戶的登錄方式有三種:命令行登錄、ssh登錄、圖形界面登錄。這三種情況,都有自己的方式對用戶進行認證。

1)命令行登錄:init進程調用getty程序(意為get teletype),讓用戶輸入用戶名和密碼。輸入完成後,再調用login程序,核對密碼(Debian還會再多運行一個身份核對程序/etc/pam.d/login)。如果密碼正確,就從文件 /etc/passwd 讀取該用戶指定的shell,然後啟動這個shell。

2)ssh登錄:這時系統調用sshd程序(Debian還會再運行/etc/pam.d/ssh ),取代getty和login,然後啟動shell。

3)圖形界面登錄:init進程調用顯示管理器,Gnome圖形界面對應的顯示管理器為gdm(GNOME Display Manager),然後用戶輸入用戶名和密碼。如果密碼正確,就讀取/etc/gdm3/Xsession,啟動用戶的會話。

設置mysql開機自啟:

chkconfig --list 列出所有的系統服務

Linux入門之系統啟動及服務管理

Linux入門之系統啟動及服務管理


分享到:


相關文章: