Linux systemd 体系

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

排错时 systemctl status 服务名 永远是第一步,输出里直接带最近几条 journalctl 日志。

# 服务启停

systemctl start 服务名         # 启动服务
systemctl stop 服务名          # 停止服务
systemctl restart 服务名       # 重启(先停后启)
systemctl reload 服务名        # 重载配置(不中断服务)
1
2
3
4

# 配置管理

systemctl cat 服务名                     # 查看服务配置文件内容
systemctl edit 服务名                    # 安全修改/追加配置(生成 override.conf)
systemctl edit --full 服务名             # 编辑完整配置文件
systemctl daemon-reload                 # 改了 unit 文件后必须执行
1
2
3
4

⚠️ 改完 .service 文件忘记 daemon-reload 是初学者最常见的坑。

# 开机自启

systemctl enable 服务名        # 设置开机自启(建符号链接)
systemctl enable --now 服务名  # 设自启 + 立即启动
systemctl disable 服务名       # 取消开机自启
systemctl disable --now 服务名 # 取消自启 + 立即停止
systemctl is-enabled 服务名    # 查看是否已设自启
1
2
3
4
5

# 查看依赖

systemctl list-dependencies 服务名            # 查看依赖树
systemctl list-dependencies --reverse 服务名  # 反向查看:谁依赖它
1
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