在 Windows 系统中,我们可以通过 services.msc 图形界面管理系统服务、设置程序开机自启。而在 Linux(CentOS 7 及以上)系统中,官方默认采用 Systemd 作为系统初始化与服务管理框架,替代了传统的 SysVinit,实现了并行启动、按需加载、统一管理,极大提升了系统开机速度与服务稳定性。
文章目录
-
- 一、Systemd 核心概述
-
- 1.设计初衷
- 2.系统核心进程
- 3.服务与守护进程(Daemon)核心概念
- 二、Systemd 整体架构
- 三、Systemd Unit 单元类型
- 四、Unit 单元查询命令
-
- 1.基础单元列表查询
- 2.输出字段释义
- 3.查看单个服务详细状态
- 4.服务状态核心关键字
-
- 运行状态
- 开机自启状态
- 五、Systemctl 服务管控核心命令
-
- 实操示例
- 六、unit单元配置文件详解
-
- 1.配置文件优先级
- 2.标准服务配置文件结构(sshd 示例)
-
- (1)[ Unit ] 通用配置段
- (2)[ Service ] 服务核心配置段
- (3)[ Install ] 开机安装配置段
- 七、实战:自定义开发 study服务
-
- 步骤1:编写服务执行脚本
- 步骤2:创建自定义服务单元文件
- 步骤3:重载配置并启动服务
- 步骤4:验证服务日志
- 八、总结
一、Systemd 核心概述
1.设计初衷
传统 Linux 初始化机制为串行启动,进程依赖复杂、开机耗时长、服务管理零散。Systemd 应运而生,旨在为 Linux 系统提供一套统一、高效、完整的系统启动与服务管理解决方案。
CentOS 7 及以上版本全面基于 Systemd 引导系统,核心特性:
-
并行启动机制:无强依赖的进程并行初始化,大幅提速开机
-
按需懒加载:进程初始仅做标记注册,真正被调用时才完整启动,节省系统资源
-
统一管控体系:整合系统服务、挂载、定时任务、设备管理等所有系统资源
2.系统核心进程
Systemd 是用户空间的首个核心进程,接管系统所有资源调度:
-
用户空间:systemd,PID = 1,系统所有进程的父进程
-
内核空间:kthreadd,PID = 2,负责内核线程调度
3.服务与守护进程(Daemon)核心概念
为方便理解,区分两个核心概念:
-
服务(Service):业务层面的抽象概念,对外提供的功能能力(如 Web 服务、数据库服务)
-
守护进程(Daemon):后台常驻进程,是支撑服务运行的具体程序载体
通俗示例类比:
-
业务:Web 服务|守护进程:httpd
-
业务:云计算培训服务|守护进程:授课老师、课程顾问、运维支撑人员
实操演示(HTTPD 服务):
# 安装 Web 服务软件
yum install -y httpd
# 启动 httpd 服务
systemctl start httpd
# 查看服务守护进程
ps -C httpd f
输出结果可清晰看到 httpd 系列后台常驻进程,即为支撑 Web 服务的守护进程。
二、Systemd 整体架构
Systemd 架构分为两层,分工明确、解耦清晰:
底层守护进程:systemd,后台常驻,负责所有系统单元的调度、启动、监控、重启
上层操作工具:systemctl,用户交互命令行工具,提供所有服务管理操作入口 
三、Systemd Unit 单元类型
Systemd 将系统所有可管理资源抽象为 Unit(单元),不同后缀对应不同资源类型,是 Systemd 管理的核心对象。
| Service | .service | 系统服务管理(最常用,如 sshd、httpd) |
| Socket | .socket | 进程间通信 Socket 文件管理 |
| Target | .target | 模拟系统运行级别,用于批量管理服务 |
| Timer | .timer | 系统定时任务管理(替代 crontab) |
| Device | .device | 内核识别的硬件设备管理 |
| Mount | .mount | 文件系统挂载点管理 |
| Automount | .automount | 文 |


