centos6,7的启动流程
CentOS 6 系統(tǒng)啟動流程:
POST --> BootSequence(BIOS) --> Bootloader --> kernel [-->ramfs] -->rootfs(ro) --> /sbin/init --> 設(shè)定默認運行級別 --> 系統(tǒng)初始化 --> 可以并行執(zhí)行ctrl+alt+del熱鍵功能定義,系統(tǒng)服務(wù)的開啟和關(guān)閉,電源管理,dbus管理等 --> 登錄提示符
CentOS 7:
Init程序:systemd,與經(jīng)典的Init程序完全不同;其配置文件:
/etc/systemd/system/*
/usr/lib/systemd/system/*:systemd的UNIT文件;
/etc/inittab:徹底被廢棄;
systemd完全兼容SysV風(fēng)格的Init程序及其腳本;因此,service類的命令在CentOS7中依然可用;但是,建議使用CentOS7標配的systemctl命令來控制和管理系統(tǒng)服務(wù);
systemctl命令:
systemctl - Control the systemd system and service manager
systemctl [OPTIONS...] COMMAND [NAME...]
使用systemctl管理服務(wù)的一般方式:
systemctl {start|stop|restart|status} name[.service]
設(shè)置CentOS 7的默認運行級別:
~]# systemctl set-default {multi-user.target | graphical.target}
查看CentOS 7的默認運行級別:
~]# systemctl get-default
系統(tǒng)初始化流程(內(nèi)核級別)
POST --> BootSequence(BIOS) --> BootLoader(MBR) --> kernel(內(nèi)核核心文件只能放置在基本分區(qū)上) [--> ramdisk] --> rootfs(read-only) --> /sbin/init
CentOS 5的SysV Init的工作過程:
CentOS 5 SysV Init:
運行級別(run level):為了系統(tǒng)的運行或維護等目的而設(shè)置的管理機制;
0-6 : 七個運行級別;
# 0 - 關(guān)機,halt,shutdown
# 1 - 單用戶模式(Single user mode),root,無需驗證;維護模式;
# 2 - 多用戶模式(Multiuser),會啟動網(wǎng)絡(luò)功能;但不會啟動NFS,維護模式;
# 3 - 多用戶模式(Full multiuser mode),完全的功能模式,僅使用CLI,不激活GUI;
# 4 - 預(yù)留級別,目前無特別使用的目的;但是習(xí)慣上認為與3運行級別相同;
# 5 - 多用戶模式(Full multiuser mode),完全的功能模式,默認激活GUI和CLI,默認使用的是GUI;
# 6 - 重啟,reboot
通常會使用3,5運行級別作為此次系統(tǒng)啟動的默認運行級別;
查看當(dāng)前系統(tǒng)的運行級別:
who -r
runlevel
切換運行級別:
init [0-6]
Init的配置文件:/etc/inittab,此配置文件有如下功能:
1.在整個系統(tǒng)初始化的過程中要做哪些任務(wù);
啟動或關(guān)閉哪些后臺服務(wù);
如何進行系統(tǒng)初始化;
在驗證用戶的身份無誤之后,如何為用戶提供登錄提示符,還要區(qū)分是圖形界面還是文件界面;
當(dāng)備用電源失效或重新生效時,如何指揮系統(tǒng)操作;
定義了按下"Ctrl + Alt + Delete"組合鍵時,系統(tǒng)將采取什么行為;
2.所有規(guī)定的任務(wù)如何執(zhí)行;
每一行定義一種操作,格式如下:
id:runlevels:action:process
id:一種操作的唯一標識符;
l#, id, pf, pr, #, x,?
runlevel:指定任務(wù)執(zhí)行所依賴的運行級別;
####, #, 留空
action:在何種條件下啟動此任務(wù);
wait:等待切換至此任務(wù)所在的運行級別時,運行一次;
respawn:一旦此任務(wù)結(jié)束,就自動重新啟動此任務(wù);
initdefault:用于設(shè)定默認的運行級別,通常后面的process省略
sysinit:設(shè)置系統(tǒng)初始化的方式,一般情況下此處運行/etc/rc.d/rc.sysinit腳本;
powerfail:
powerokwait:
ctrlaltdel:
/etc/rc.d/rc.sysinit:
1.設(shè)置主機名稱;
2.設(shè)置啟動的歡迎信息;
3.激活udev和SELinux
4.掛載/etc/fstab文件中定義的所有有效文件系統(tǒng);
5.激活各個swap設(shè)備;
6.檢測rootfs,并且以讀寫的方式重新掛載rootfs;
7.設(shè)置系統(tǒng)時間;
8.根據(jù)/etc/sysctl.conf文件設(shè)置內(nèi)核參數(shù);
9.激活lvm和軟RAID等高級邏輯設(shè)備;
10.加載額外的設(shè)備的驅(qū)動程序;
11.完成清理工作;
/etc/rc.d/rc:
根據(jù)特定的運行級別,啟動或關(guān)閉/etc/rc.d/rc$runlevel.d/*
K*:要停止的服務(wù);K字母后面的兩位數(shù)字表示優(yōu)先級;數(shù)字越小優(yōu)先級越高;依賴其他服務(wù)的服務(wù)應(yīng)該優(yōu)先關(guān)閉,被其他服務(wù)依賴的服務(wù)應(yīng)該稍后關(guān)閉;
S*:要啟動的服務(wù);S字母后面的兩位數(shù)字表示優(yōu)先級;數(shù)字越小優(yōu)先級越高;被其他服務(wù)依賴的服務(wù)應(yīng)該優(yōu)先啟動,依賴其他服務(wù)的服務(wù)應(yīng)該稍后啟動;
rc腳本可以接受一個運行級別作為其參數(shù)運行內(nèi)容的;
腳本框架:
for i in /etc/rc.d/rc#.d/K* ; do
$i stop
done
for i in /etc/rc.d/rc#.d/S* ; do
$i start
done
所有由rc腳本關(guān)閉或啟動的鏈接文件的源文件都存在于/etc/rc.d/init.d,系統(tǒng)為了方便使用,為此目錄創(chuàng)建了鏈接/etc/init.d
所有/etc/init.d(/etc/rc.d/init.d)目錄中的腳本執(zhí)行方式:
# /etc/init.d/SRV_SCRIPT {start|stop|restart|status}
# service SRV_SCRIPT {start|stop|restart|status}
chkconfig命令:
chkconfig - updates and queries runlevel information for system services
查看系統(tǒng)服務(wù)相關(guān)運行級別下的運行狀態(tài):
chkconfig --list [name]
轉(zhuǎn)載于:https://blog.51cto.com/12491507/1950546
總結(jié)
以上是生活随笔為你收集整理的centos6,7的启动流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python学习笔记 --- 随机数进阶
- 下一篇: 动态轮播图