Linux開機啟動流程
CentOS 6和CentOS 7開機流程
Linux運行級別
1.什么是運行級別尤泽,運行級別就是操作系統(tǒng)當前正在運行的功能級別
System V init運行級別 | systemd目標名稱 | 作用 |
---|---|---|
0 | runlevel0.target, poweroff.target | 關(guān)機 |
1 | runlevel1.target, rescue.target | 單用戶模式 |
2 | runlevel2.target, multi-user.target | |
3 | runlevel3.target, multi-user.target | 多用戶的文本界面 |
4 | runlevel4.target, multi-user.target | |
5 | runlevel5.target, graphical.target | 多用戶的圖形界面 |
6 | runlevel6.target, reboot.target | 重啟 |
2.如何調(diào)整系統(tǒng)啟動的運行級別?
systemd使用 'targets'而不是runlevels规脸。默認情況下坯约,有兩個主要目標:
multi-user.target:類似于運行級別3
graphical.target: 類似于運行級別5*
#1.查看系統(tǒng)默認運行級別
[root@student ~]# systemctl get-default
#2.要設(shè)置默認目標,請運行
[root@student ~]# systemctl set-default TARGET.target
Linux systemd
1.systemd的由來
Linux一直以來都是采用init進程作為祖宗進程莫鸭,但是init有兩個缺點:
1闹丐、啟動時間長。Init進程是串行啟動被因,只有前一個進程啟動完卿拴,才會啟動下一個進程。
2梨与、啟動腳本復(fù)雜堕花,初始化完成后系統(tǒng)會加載很多腳本,腳本都會處理各自的情況粥鞋,這會讓腳本多而復(fù)雜缘挽。
Centos5 是啟動速度最慢的,串行啟動過程呻粹,無論進程相互之間有無依賴關(guān)系到踏。
Centos6 相對啟動速度有所改進。有依賴的進程之間依次啟動而其他與之沒有依賴關(guān)系的則并行同步啟動尚猿。
Centos7 所有進程無論有無依賴關(guān)系則都是并行啟動(當然很多時候進程沒有真正啟動而是只有一個信號或者說是標記而已,在真正利用的時候才會真正啟動楣富。)
2.什么是systemd
systemd即為system daemon守護進程凿掂,systemd主要解決上文的問題而誕生,systemd的目標是,為系統(tǒng)的啟動和管理提供一套完整的解決方案庄萎。
3.systemd的優(yōu)勢
1踪少、最新系統(tǒng)都采用systemd管理(RedHat7,CentOS7,Ubuntu15等)
2、Centos7支持開機并行啟動服務(wù)糠涛,顯著提高開機啟動效率援奢。
3、Centos7關(guān)機只關(guān)閉正在運行的服務(wù)忍捡,而Centos6全部都關(guān)閉一次集漾。
4、Centos7服務(wù)的啟動與停止不在使用腳本進行管理砸脊,也就是/etc/init.d下不在有腳本具篇。
5、Centos7使用systemd解決原有模式缺陷凌埂,比如原有service不會關(guān)閉程序產(chǎn)生的子進程驱显。
4.systemd相關(guān)配置文件
/usr/lib/systemd/system/ #類似Centos6系統(tǒng)的啟動腳本,/etc/init.d/
/etc/systemd/system/ #類似Centos6系統(tǒng)的/etc/rc.d/rcN.d/
/etc/systemd/system/multi-user.target.wants/
5.systemd管理服務(wù)相關(guān)命令
systemctl管理服務(wù)的啟動瞳抓、重啟埃疫、停止、重載孩哑、查看狀態(tài)等常用命令
systemctl命令 | 作用 |
---|---|
systemctl start crond.service | 啟動服務(wù) |
systemctl stop crond.service | 停止服務(wù) |
systemctl restart crond.service | 重啟服務(wù) |
systemctl reload crond.service | 重新加載配置 |
systemctl status crond.servre | 查看服務(wù)運行狀態(tài) |
systemctl is-active sshd.service | 查看服務(wù)是否在運行中 |
systemctl mask crond.servre | 禁止服務(wù)運行 |
systemctl unmask crond.servre | 取消禁止服務(wù)運行 |
當我們使用systemctl啟動一個守護進程后栓霜,可以通過sysytemctl status查看此守護進程的狀態(tài)
狀態(tài) | 描述 |
---|---|
loaded | 服務(wù)單元的配置文件已經(jīng)被處理 |
active(running) | 服務(wù)持續(xù)運行 |
active(exited) | 服務(wù)成功完成一次的配置 |
active(waiting) | 服務(wù)已經(jīng)運行但在等待某個事件 |
inactive | 服務(wù)沒有在運行 |
enabled | 服務(wù)設(shè)定為開機運行 |
disabled | 服務(wù)設(shè)定為開機不運行 |
static | 服務(wù)開機不啟動,但可以被其他服務(wù)調(diào)用啟動 |
systemctl設(shè)置服務(wù)開機啟動臭笆、不啟動叙淌、查看各級別下服務(wù)啟動狀態(tài)等常用命令
systemctl命令(7系統(tǒng)) | 作用 |
---|---|
systemctl enable crond.service | 開機自動啟動 |
systemctl disable crond.service | 開機不自動啟動 |
systemctl list-unit-files | 查看各個級別下服務(wù)的啟動與禁用 |
systemctl is-enabled crond.service | 查看特定服務(wù)是否為開機自啟動 |
systemctl daemon-reload | 創(chuàng)建新服務(wù)文件需要重載變更 |
CentOS7系統(tǒng), 管理員可以使用 systemctl 命令來管理服務(wù)器啟動與停止
#關(guān)機相關(guān)命令
systemctl poweroff #立即關(guān)機,常用
#重啟相關(guān)命令
systemctl reboot #重啟命令愁铺,常用