系統啟動流程
POST --> Boot Sequence --> Bootloader --> kernel+initramfs(initrd) --> rootfs --> /sbin/init init: CentOS 5: SysV init CentOS 6: Upstart CentOS 7: Systemd
systemd
系統啟動和服務器守護進程管理器,負責在系統啟動或運行時,激活系統資源,服務器進程和其它進程。 新特性: 系統引導時實現服務并行啟動 按需啟動守護進程 自動化的服務依賴關系管理 同時采用socket式與D-Bus總線式激活服務 系統狀態快照 核心概念:unit unit 表示不同類型的systemd對象,通過配置文件進行標識和配置。 文件中主要包含了系統服務、監聽socket 、保存的系統快照以及其它與init 相關的信息。 配置文件: /usr/lib/systemd/system: 每個服務最主要的啟動腳本設置,類似于之前的/etc/init.d/ /run/systemd/system: 系統執行過程中所產生的服務腳本,比/usr/lib/systemd/system目錄優先運行 /etc/systemd/system: 管理員建立的執行腳本,類似于/etc/rc.d/rcN.d/Sxx 類的功能,比/run/systemd/system目錄優先運行 關鍵特性: 基于socket 的激活機制: socket 與服務程序分離 基于d-bus 的激活機制: 基于device 的激活機制: 基于path 的激活機制: 系統快照: 保存各unit的當前狀態信息于持久存儲設備中,向后兼容sysv init 腳本 不兼容: systemctl 命令固定不變,不可擴展 非由systemd 啟動的服務,systemctl無法與之通信和控制
Unit 類型