Linux systemd 体系
maiaimei 2026/11/8 Linux
# systemd 概述
systemd 是一整套 Linux 系统基础管理套件(suite)。
- 内核启动完成后,第一个用户态进程 PID 1 就是
systemd(/sbin/init软链接指向它) - 它既是 init 系统(替代老式 SysV init / Upstart),也是 服务管理器 + 系统状态管理器
- 官方定义:"a suite of basic building blocks for a Linux system"
systemd 体系:以 PID 1 的 systemd 为核心,附带 journald(日志)、networkd(网络)、resolved(DNS)、logind(登录)等组件,加上 systemctl、journalctl 等命令行工具,统一管理系统"启动、服务、网络、日志、登录、时间"等基础运行环节。
# systemctl 命令
# 查看状态
systemctl status # 查看整个系统状态
systemctl status 服务名 # 查看单个服务状态(含最近日志、是否运行、PID)
systemctl is-active 服务名 # 只看是否运行中(脚本里常用)
systemctl is-failed 服务名 # 看是否进入 failed 状态
1
2
3
4
2
3
4
排错时
systemctl status 服务名永远是第一步,输出里直接带最近几条 journalctl 日志。
# 服务启停
systemctl start 服务名 # 启动服务
systemctl stop 服务名 # 停止服务
systemctl restart 服务名 # 重启(先停后启)
systemctl reload 服务名 # 重载配置(不中断服务)
1
2
3
4
2
3
4
# 配置管理
systemctl cat 服务名 # 查看服务配置文件内容
systemctl edit 服务名 # 安全修改/追加配置(生成 override.conf)
systemctl edit --full 服务名 # 编辑完整配置文件
systemctl daemon-reload # 改了 unit 文件后必须执行
1
2
3
4
2
3
4
⚠️ 改完
.service文件忘记daemon-reload是初学者最常见的坑。
# 开机自启
systemctl enable 服务名 # 设置开机自启(建符号链接)
systemctl enable --now 服务名 # 设自启 + 立即启动
systemctl disable 服务名 # 取消开机自启
systemctl disable --now 服务名 # 取消自启 + 立即停止
systemctl is-enabled 服务名 # 查看是否已设自启
1
2
3
4
5
2
3
4
5
# 查看依赖
systemctl list-dependencies 服务名 # 查看依赖树
systemctl list-dependencies --reverse 服务名 # 反向查看:谁依赖它
1
2
2
# journalctl 命令
journalctl -u 服务名 # 查某服务全部日志
journalctl -u 服务名 -f # 实时跟踪(类似 tail -f)
journalctl -u 服务名 -n 50 # 最近 50 行
journalctl -u 服务名 --since today # 今天以来的日志
journalctl -u 服务名 -xe # 最近错误 + 详细解释
1
2
3
4
5
2
3
4
5