首页/系统/Linux 运维命令速查/systemctl list-units 盘点单元清单
systemd 与服务42 条

systemctl list-units 盘点单元清单

查所有已加载单元及其状态:--type=service 聚焦服务、--state=running 只看运行中、--all 含 inactive;巡检与资产盘点基础。

Linux 运维命令速查系统更新于 2026-10-13

list-units 是什么

systemctl list-units 列出当前已加载到内存里的单元及其运行状态,回答的是「系统现在在跑什么」。与之对应的 list-unit-files 列出磁盘上的单元文件与它们的启用状态,回答的是「系统上有哪些单元、开机策略是什么」。两个命令口径不同,盘点资产与排查自启问题时要按目的选择。

基本信息

适用平台Linux(systemd)
命令语法systemctl list-units [--type T] [--state S] [--all]
常用选项--type 按类型过滤(service、timer、target 等)--state 按状态过滤 --all 包含未激活 --no-pager 不分页 --no-legend 去掉表尾统计 --plain 输出机器易读格式
默认行为不带 --all 时隐藏 inactive 单元,只显示已加载且有活动的部分
权限说明读取信息普通用户即可

典型使用场景

  • 服务盘点:确认机器上实际在跑哪些服务
  • 查异常:配合 --state=failed 快速列出失败单元
  • 按类型核对:用 --type=timer 看定时器、--type=target 看启动目标
  • 审计自启:把 list-unit-files 的 enabled 清单与预期对比
  • 脚本取数:加 --plain 与 --no-legend 得到稳定可解析的输出

常用示例

常用示例
systemctl list-units --type=service --state=running           # 正在运行的服务
systemctl list-units --type=service --state=failed             # 失败的服务
systemctl list-units --type=timer --all | head                  # 全部定时器
systemctl list-units --type=service --all | wc -l                # 已加载服务数量
systemctl list-unit-files --type=service | grep enabled | head -n 30
systemctl list-unit-files --type=service --state=masked | head  # 被屏蔽的单元

两个盘点命令的差别

命令数据来源典型用途
systemctl list-units已加载到内存的单元与运行时状态看当前运行情况与失败单元
systemctl list-unit-files磁盘上的单元文件与启用状态看有哪些单元、开机是否启用或被屏蔽
--type 过滤按单元类型筛选服务、定时器、目标等分开看
--state 过滤按运行状态筛选failed、running、exited 等
--all包含未激活单元排查「单元明明存在却不显示」
--plain 与 --no-legend输出更易解析脚本里必加,避免表尾统计干扰
list-units 看运行时已加载的单元,list-unit-files 看磁盘上的单元文件与开机策略,两者口径不同:一个单元可能在磁盘上存在且已启用,但当前并未 loaded,前者就看不到它。
做资产盘点时两个命令都跑一遍更稳妥:list-unit-files 反映「这台机器上应该有哪些单元」,list-units 反映「此刻实际在跑什么」。把两份清单对比一下,就能发现已安装却没启用的服务,或者被意外启动、与文档不符的单元。
输出默认会被分页器接管并附带表尾统计行,脚本里直接解析很容易出错。稳妥写法是同时加 --no-pager、--no-legend 与 --plain,或者改用 systemctl show 这类面向字段的接口取具体值。

易错点

  • list-units 默认不加 --all 时隐藏 inactive 单元,会误以为单元不存在
  • 输出被分页器接管时,脚本里要加 --no-pager 与 --no-legend 才好解析
  • list-units 与 list-unit-files 口径不同,用错命令会得出「服务不存在」的错误结论
  • 只看 enabled 列表不等于会在启动链里被拉起,还要确认它挂在哪个目标的 WantedBy 下
  • --state 与 --type 可组合,但过滤条件写错时输出为空,容易被误读成「什么都没有」

数据来源与参考

  • man 1 systemctl(list-units/list-unit-files)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌