Linux引導過程和服務控制
一 引導過程
開機自檢→MBR引導→GRUB菜單→加載核心→運作INIT程序 →讀取配置檔案
1 開機自檢
根據主機闆bios中的設定對CPU、記憶體、顯示卡、等硬體裝置進行初步檢測,檢測成功後一般會交給本機硬碟
2 MBR引導
要從硬碟引導,首先會根據硬碟第一個扇區中MBR(主引導記錄)的設定,将系統控制權傳遞給包含作業系統引導檔案的分區,或者直接調用啟動菜單(如GRUB)
3 GRUB菜單
将會顯示啟動菜單提供給使用者選擇,并根據所選項加載linux核心檔案,然後将系統控制權交給核心
4 加載linux核心
Linux核心是一個預先編譯好的特殊二進制檔案,介于各種硬體資源與系統程式之間,負責資源配置設定與排程。将完全掌控整個linux作業系統的運作過程
5 INIT程序初始化
核心首先将“/sbin/init”程式加載到核心中運作,init程序負責完成一系列的系統初始化過程
二 系統初始化程序及檔案
1 INIT程序
由Linux核心加載運作 /sbin/init 程式,是系統中第一個程序,PID(程序标記)号永遠為1,是所有程序的“始祖”
配置檔案:/etc/inittab
2 inittab配置檔案
1)inittab檔案的結構(向配置檔案裡編輯的條目)
x:5:respawn:/etc/X11/prefdm –nodaemon
标記:運作級别:動作類型:程式或腳本
id:用于在inittab檔案中唯一辨別一個配置記錄;也稱标記字段,由1~4個字元組成,用以差別于其他行的配置
runlevels:用于指定該記錄在哪些運作級别中運作;取值數字0~6
0級别:關機狀态
1級别:單使用者模式,無需密碼驗證即可登入(故障排除,如修改root帳戶密碼)
2級别:無網絡功能指令行模式
3級别:指令行模式
4級别:未定義模式
5級别:圖形模式
6級别:關機重新開機
action:用于描述記錄将執行哪種類型的動作;一般為固定值,較常用的類型如下
initdefault:設定初始化系統後預設進入的運作級别
sysinit:設定系統初始化的操作腳本
wait:init程序将等待該行配置所對應的腳本操作完成後,再繼續執行其他操作
ctrlaltdel:設定當使用者按下Ctrl+Alt+Delete組合鍵後的操作
powerfail:設定當系統收到斷電信号(使用不間斷電源)時采取何種動作
powerokwait:設定當系統收到恢複供電信号時采取何種動作
respawn:一旦該行配置所對應的程序被終止,則重新啟動該程序
process:用于設定啟動程序所執行的指令
2)inittab配置檔案的預設附加元件
系統預設啟動級别(3或5)
調用rc.sysinit腳本檔案
在某個級别加載哪些系統服務(其中wait表示加載完RC腳本後才加載其它檔案)
熱啟動快捷鍵配置
字元控制台加載
3)inittab配置檔案的應用
開機直接進入文本模式:修改id:5:initdefault:中的5為3
[root@mazi ~]# vim /etc/inittab
id:3:initdefault
禁用熱鍵重新開機功能:在下面配置行添加#,讓之失效
[root@localhost ~]# vi /etc/inittab
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
[root@mazi ~]# init q 重新讀取配置資訊(重新整理)
減少字元控制台
通過/sbin/mingetty程式提供服務:提供六個字元控制台;可以注釋掉某一個控制台進而限制控制台數量
[root@localhost ~]# grep "mingetty" /etc/inittab
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
3 rc.sysinit腳本檔案
位于/etc/rc.d/rc.sysinit,由init程序調用執行,完成設定網絡、主機名、加載檔案系統、設定時鐘、檢測檔案系統等初始化工作;通過init程序通過inittab檔案中的對應配置來加載rc.sysinit腳本;例如檢查并啟用磁盤配額功能就是在該腳本中完成的
4 rc腳本檔案
位于/etc/rc.d/rc,由init程序進行調用,通過指定不同的級别參數分别加載及終止不同的系統服務,進入到相應的系統運作級别。
當系統開機進入3級别,inittab配置檔案就會調用rc腳本(可以設定為不調用),而rc腳本會執行/etc/rc.d/rc0.d/或/etc/rc.d/rc2.d/或……/etc/rc.d/rc6.d/六個目錄中第三個目錄中的系統服務;這些服務以K或S開頭中間是數字序号的,是系統服務腳本名;都是連結于/etc/rc.d/init.d/目錄中的服務;對于RC腳本來說,K開頭表示要終止該服務,S開頭的表示要啟動該服務,中間的數字表示執行順序;是以在rc0.d中大多是K開頭的,表示關機時關閉裡面的服務;在rc5.d中的服務大多是S開頭的
5 rc.local腳本檔案
是一個額外的啟動控制檔案,位于/etc/rc.local,由rc腳本在最後時進行加載;管理者可自行設定開機啟動任務,設定服務的開機自啟動;例如添加開機自動校對系統時間
三 服務控制和優化啟動過程
·系統服務控制
各種系統服務的控制腳本預設放在/etc/rc.d/init.d/目錄下;用過兩種方式可以對指定服務進行控制;一種專門的service控制工具,一種是直接運作系統服務腳本檔案
Service 服務名稱 控制類型
/etc/rc.d/init.d服務名稱 控制類型
其中控制類型包括:
start:啟動
stop:停止
restart:重新啟動(先停止後啟動)當服務正在運作時不能中斷時最好不要使用
reload:重新加載(重新整理配置)
status:檢視服務狀态
例如:檢視crond服務的運作狀态:service crond status
·切換運作級别
不同的運作級别,有不同的系統運作的狀态,不同的運作服務;比如說網站伺服器隻需運作在文本模式即可,無需開啟圖形界面
1檢視目前運作級别
如果之前未切換過運作級别,第一列将顯示“N
2切換運作級别
使用init n來切換,其中n代表0-6這六個級别
init 0關機
init 6重新開機
當系統處于3級别時無法使用Alt+7切換到圖形界面,因為5級别的程式已經被關閉了
·優化啟動過程
關閉使用者不需要的服務,以優化系統啟動過程
1了解常見的服務
2系統服務管理工具
若要禁止某些服務開機啟動,可以使用服務管理工具:
ntsysv工具:提供一個互動式、可視化視窗;可以在字元終端運作;便于集中管理多個服務
格式:ntsysv或ntsysv --level 級别清單 /所有級别或指定級别的服務
操作:操作時按上下箭頭鍵來選擇不同的系統服務,按空格鍵來設定服務的預設啟動狀态(“[*]”表示啟動,“[ ]”表示關閉)。如果想知道所標明服務的說明資訊,按F1鍵可以擷取幫助
chkconfig工具:不提供互動式、可視化視窗;管理單個服務效率更高
1)檢視服務的啟動級别
格式:chkconfig –list或chkconfig --list 服務名稱 /所有服務或指定服務
這個服務在2、3、4、5級别時開機自啟動
2)設定系統服務的啟動狀态
格式:chkconfig --level 級别清單 服務名 on|off
運作級别清單:可以是235、 35、5等等形式
服務名稱:注意名稱要正确,如果忘記了可檢視/etc/init.d/目錄下的腳本名
On|off:啟動或關閉啟動狀态
設定network服務在2345級别時開機啟動