10 Linux引导过程和服务控制
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級別時開機啟動
轉載于:https://blog.51cto.com/itit0/1334768
總結
以上是生活随笔為你收集整理的10 Linux引导过程和服务控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 脑梗会复发率?
- 下一篇: 小菜鸟学 Spring-Dependen