一、簡介
- Linux啟動流程基本相同,關鍵的不同點在于初始化進程,如下:
SysV: init, CentOS 5之前, 配置文件: /etc/inittab。
Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。
Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。
- systemd介紹
- 系統啟動和服務器守護進程管理器,負責在系統啟動或運行時,激活系統資源,服務器進程和其它進程
- 新特性
- 系統引導時實現服務并行啟動
- 按需啟動守護進程
- 自動化的服務依賴關系管理
- 同時采用socket式與D-Bus總線式激活服務
- 系統狀態(tài)快照
二、BIOS->Boot Loader->內核->初始化進程(systemd)
systemd:系統守護進程(第一個進程pid=1);配置文件單元Unit;管理命令systemctl等
-
Unit
- 類型:Service、Target、Device等
- 配置文件位置:/etc/systemd/system/;/usr/lib/systemd/system/;/etc/systemd/system/default.target(systemd默認Target)
- 格式
[Unit] Description #簡短描述 Documentation #文檔地址 Requires #當前 Unit 依賴的其他 Unit,如果它們沒有運行,當前 Unit 會啟動失敗 Wants #與當前 Unit 配合的其他 Unit,如果它們沒有運行,當前 Unit 不會啟動失敗 After #如果該字段指定的 Unit 也要啟動,那么必須在當前 Unit 之前啟動 Conflicts #這里指定的 Unit 不能與當前 Unit 同時運行 [Service] Type #定義啟動時的進程行為 EnvironmentFile #環(huán)境配置文件 ExecStart #指明啟動unit要運行命令或腳本的絕對路徑 ExecStartPre #ExecStart前運行 ExecStartPost #ExecStart后運行 ExecStop #指明停止unit要運行的命令或腳本 [Install] Alias #當前 Unit 可用于啟動的別名 Also #當前 Unit systemctl enable時,會被同時激活的其他 Unit WantedBy #它的值是一個或多個 Target,當前 Unit 激活時(enable)符號鏈接會放入/etc/systemd/system目錄下面以 Target 名 + .wants后綴構成的子目錄中,這樣就能實現開機自啟 RequiredBy #它的值是一個或多個 Target,當前 Unit 激活時,符號鏈接會放入/etc/systemd/system目錄下面以 Target 名 + .required后綴構成的子目錄中 -
管理命令
功能 CentOS6 CentOS7 啟動 service name start systemctl start name.service 停止 service name stop systemctl stop name.service 重啟 service name restart systemctl restart name.service 查看某服務當前激活與否的狀態(tài) - systemctl is-active name.service 查看所有已經激活的服務 - systemctl list-units --type service 查看所有服務 - systemctl list-units --type service --all 設定某服務開機自啟 chkconfig name on systemctl enable name.service 設定某服務開機禁止啟動 chkconfig name off systemctl disable name.service 查看所有服務的開機自啟狀態(tài) chkconfig --list systemctl list-unit-files --type service 查看服務是否開機自啟 - systemctl is-enabled name.service 啟用 - systemctl mask name.service 禁用 - systemctl unmask name.service
三、BIOS->Boot Loader->內核->初始化進程(init)
- 運行級別:0關機、1單用戶模式(系統管理員維護使用)、2無網絡支持的多用戶模式、3有網絡支持的多用戶模式、4保留未使用、5有網絡支持有X-Window支持的多用戶模式、6重啟
- /etc/rc.d/rc[0-6].d:開機啟動根據Linux運行級別執(zhí)行對應目錄下的腳本連接(連接到/etc/rc.d/init.d)
- /etc/rc.d/rc.local:/etc/rc.d/rc[0-6].d執(zhí)行完再執(zhí)行此文件
- /etc/rc.d/init.d:開機啟動腳本文件
參考網址:
https://www.cnblogs.com/duzhaoqi/p/7582404.html
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html