Rain Wiki · Linux

systemd 单元与 systemctl

什么是 systemd 单元、常见的单元类型,以及如何使用 systemctl 启动、停止、启用和检查服务。

Linux · Rain Wiki

systemd 单元是 systemd(大多数 Linux 发行版的初始化系统)所管理的配置对象,例如服务、套接字、定时器、挂载点等。单元由诸如 /etc/systemd/system/<name>.service 的单元文件描述,并通过 systemctl 命令进行控制。

单元类型

.service 用于运行程序,.socket 在有连接到达时启动服务,.timer 按计划运行单元,.mount 和 .automount 用于处理文件系统,.target 将单元分组到特定状态,例如 multi-user.target。

单元文件的存放位置

软件包将单元安装在 /usr/lib/systemd/system(或 /lib/systemd/system)中。本地更改应放在 /etc/systemd/system 中,该目录具有优先权。使用 'systemctl edit <unit>' 可以创建嵌入式覆盖配置,而不是修改打包的文件。

日常命令

'systemctl status <unit>' 显示状态和最后的日志行。'start'、'stop' 和 'restart' 立即生效;'enable' 和 'disable' 控制开机启动;'enable --now' 同时执行这两项操作。'systemctl --failed' 列出失败的单元,'systemctl daemon-reload' 在更改后重新读取单元文件。

如何检查故障服务

  1. 列出失败的单元:systemctl --failed
  2. 显示状态和最近的消息:systemctl status <unit>
  3. 读取本次启动的完整日志:journalctl -u <unit> -b
  4. 修复配置后:sudo systemctl restart <unit>

注意事项

  • 使用 'systemctl edit' 修改打包的单元,而不要直接编辑 /usr/lib/systemd/system 中的文件:更新会覆盖它们。
  • 请勿禁用不了解的单元,例如 systemd-journald 或 dbus。

资料来源

最后更新: 2026-10-08

相关文章