systemd管理

1、centos5,6,7啓動流程與以前的差異

一、POST
計算機要想開機,他必須經過BIOS或UEFI對基本的輸入輸出硬件設備進行檢查,檢查內存,CPU,硬盤等等。
二、選擇啓動順序(安裝時須要選擇)
當經過自檢後,就須要選擇須要用什麼引導方式,引導方式大體爲:光盤啓動、硬盤啓動、網絡啓動、U盤啓動,這些只是在安裝系統時選擇,安裝好系統後默認從硬盤啓動
三、選擇好引導方式後就開始從硬盤的前446字節也就是BootLoader用來引導用戶選擇啓動 的系統或不一樣版本內核。
centos5.6中,主要的文件放與/boot/grub/grub.cfg引導內核加載文件和/boot/grub/目錄下在stage1,stage1.5,stage2階段所須要的二進制文件
centos7,文件放在/boot/gub2/grub.cfg引導內核加載文件和/boot/grub/目錄下stage1,stage1.5,stage2階段所須要的二進制文件
四、加載內核
利用grub.cfg文件加載硬件啓動程序,以只讀的方式加載根文件系統,,而在centos5,6在這一步尚未文件系統,而centos7在這一步開始就已經掛載了xfs文件系統也就是stage2步驟
五、運行用戶空間的第一個應用程序
centos5:sysv init 配置文件/etc/inittab
centos6:upstart 配置文件/etc/inittab; /etc/init/.conf(主要)
centos7:systemd 配置文件:/etc/systemd/system;/usr/lib/systemd/system/

在centos5,6的第一個父進程名字仍是init,而在centos7中第一個父進程則變成systemd
六、在centos5主要根據/etc/inittab文件進行配置
初始化運行級別
調用系統初始化腳本(/etc/rc.d/rc.sysinit)進行系統初始化
對應運行級別的腳本目錄
捕獲某個關鍵字順序
定義UPS電源終端/恢復腳本
在虛擬控制檯生成getty
在運行級別5初始化X
centos6和centos5基本相似,只是將inittab文件拆分爲多個文件,存放在/etc/init/*.conf
根據/etc/inittab文件肯定啓動哪一級別,而後根據啓動級別按照/etc/rc.d/rc開機將全部S開頭的所有開一遍,將全部K開頭的所有關一遍來作到根據啓動級別啓動服務
centos7,則是根據/etc/systemd/system/default.target指向的啓動級別,根據運行級別所須要啓動的target來啓動,並非跟以前版本同樣,將每個服務在每個運行級別的目錄下放一邊,互不干擾,而centos7則是,在當前服務只裝當前系統 所必須安裝的包,而後一級一級的往上安裝,不會出現重複的服務,換句話說,centos7不存在當前的是哪個運行級別這一說法,由於在graphical.target(圖形化)模式下也有multi-user.target(以前版本的3模式)。centos

2、systemd介紹

systemd服務是系統啓動和服務器守護進程管理器,負責在系統啓動或運行時激活系統資源,服務器進程和其餘進程,在CentOS7中,在系統啓動時,將以前的串行啓動服務改變成了並行,因此CentOS7系統比以前系統都要啓動的快。
systemd新特性
系統引導時實現服務並行啓動
按需啓動守護進程(只有在須要該服務時,纔會啓動該服務)
自動化的服務依賴關係管理(若啓動服務有其餘依賴的服務,則自動啓動依賴服務)
同時採用socket式和D-Bus總線式激活服務
系統狀態快照服務器

3、unit核心概念

unit表示不一樣類型的systemd對象,經過配置文件進行標識和配置,文件中主要包括含了系統服務、監聽socket、保存系統快照以及其它與init相關的信息網絡

4、相關配置文件

在centos7中,像以前系統中的/etc/init.d/目錄下的文件已經幾乎沒有了,剩下的服務在管理上也已經不是init在管理,已經改變成systemd在管理。
/usr/lib/systemd/system目錄下主要存放着每個服務主要的配置文件相似於以前系統中的/etc/init.d目錄
/run/systemd/system目錄主要存放着系統執行過程當中所產生的服務腳本,比上面目錄優先運行
/etc/systemd/sysyem目錄主要存放着管理員創建的執行腳本,相似於以前版本中的/etc/rc.d/rcX.d/目錄下的腳本文件,比上面的目錄優先級都高socket

5、unit類型

使用命令systemctl -t help命令能夠查看系統中都有哪些unit類型,文件類型的區別在於後綴名
systemd管理ide

6、CentOS7服務管理

查看當前服務狀態命令
systemctl list-unit-files --type service --all
服務狀態說明
loaded:unit配置文件已處理
active(running):一次或屢次持續處理運行
active(exited):成功完成一次性配置
active(waiting):運行中,等待一個時間
inactive:不運行
enabled:開機啓動
disabled:開機不啓動
static:開機不啓動,但可被另外一個啓動的服務激活
啓動服務的變化
在以前系統中的服務管理能夠是兩種方式
service 服務名 start|stop|restart,也可使用/etc/init.d/服務名 start|stop|restart兩種方式,而CentOS7系統中以前的方式還可使用,只是他們所調用的命令已經變成了systemctl
systemd管理
systemctl命令語法
systemctl start|stop|restart 服務名1 服務名2
systemctl命令與以前版本的service命令相比的優勢在於systemctl命令能夠同時啓動多個服務
開機自啓服務變化
chkconfig --list 查看當前可用該命令能夠控制的服務,不過該命令的實質也是在調systemctl命令
systemd管理
也可使用chkconfig 服務名 on|off改變開啓是否自動啓動
而大多數服務已經變成使用systemctl enable|disable 服務名來設置開始是否啓動使用systemctl is-enabled 服務名來查看開機是否自動啓動
systemd管理
而開機自動啓動的實質就是在/etc/systemd/system目錄下建立一個鏈接文件
條件式啓動服務
若服務已啓動則纔會重啓,不然不作任何操做centos7

systemctl try-restart 服務名rest

重載或重啓服務,先加載,在啓動對象

systemctl reload-or-restart 服務名blog

重載或條件是重啓服務進程

systemctl reload-or-try-restart 服務名

禁用和啓用某服務
禁用和啓用的實質就是在/etc/systemd/system目錄下建立一個連接到/dev/null的軟連接使服務不能啓動,啓用就是將軟連接刪除
禁用自動和手動啓動

systemctl mask 服務名‘

取消禁用

systemctl unmask 服務名

查看服務狀態
查看某服務當前是否已激活

systemctl is-active 服務名

查看當前全部已經激活的服務

systemctl list-units -t service

查看全部服務

systemctl list-units -t service -a

查看全部服務開機自啓狀態
在以前版本中使用的是chkconfig --list而在centos7中則使用systemctl list-unit-files -t service
查看某服務是否開機自啓

systemctl is-enabled 服務名

驗證當前服務是否活動

systemctl is-actice 服務名

查看服務之間的依賴關係

systemctl list-dependencies 服務名

列出全部單元狀態

systemctl或systemctl list-units

只顯示服務單元的狀態

systemctl -type=servicesystemctl -l status 服務名

相關文章
相關標籤/搜索