一聚教程网:一个值得你收藏的教程网站

热门教程

Linux 中如何查看所有已启用的系统服务列表

时间:2026-08-10 16:30:50 编辑:袖梨 来源:一聚教程网

在Linux中查看已启用服务需区分“启用”(开机自启)与“运行”状态,推荐用systemctl list-unit-files --type=service --state=enabled;static/indirect服务虽不显enabled但属正常启用机制;旧SysVinit系统用chkconfig或update-rc.d;is-enabled判断自启,is-active仅反映当前运行状态。

在 Linux 中查看所有已启用的系统服务,核心是区分“已启用”(开机自启)和“正在运行”——两者不等价。启用表示系统启动时会尝试拉起该服务,无论它当前是否活跃。

用 systemctl list-unit-files 查启用状态(推荐)

这是最准确、最通用的方法,适用于所有基于 systemd 的现代发行版(如 CentOS 7+/8+/9、Ubuntu 16.04+、Debian 8+、Rocky/AlmaLinux 等):

  1. 列出全部服务及其启用状态systemctl list-unit-files --type=service,输出含 enabled/disabled/static/indirect 等标记
  2. 只筛选已启用的服务systemctl list-unit-files --type=service --state=enabled
  3. 同时显示启用状态 + 当前运行状态:加 --all 可看到更全信息,但默认输出已足够判断是否启用

注意 static 和 indirect 类型服务

某些服务标为 static(如 dbus-broker.socket)或 indirect,它们不能被单独启用/禁用,而是由其他单元(如 socket 或 target)自动触发。这类服务虽不显示为 enabled,但属于系统正常启用机制的一部分,不应误判为“未启用”。

旧系统(SysVinit)用 chkconfig 或 update-rc.d

仅适用于极少数仍用 SysVinit 的老环境(如 CentOS 6 或定制嵌入式系统):

  1. RHEL/CentOS 6:运行 chkconfig --list | grep 3:on(运行级3下启用)或 chkconfig --list 全局查看
  2. Debian/Ubuntu(SysV 风格):用 sudo update-rc.d -f servicename defaults 启用后,sudo update-rc.d -l 可查各运行级状态
  3. 注意:/etc/init.d/ 下有脚本 ≠ 已启用;必须配合 chkconfig 或 update-rc.d 确认

别混淆 is-enabled 和 is-active

单个服务快速验证用这两个命令:

  1. systemctl is-enabled nginx → 返回 enabled 表示开机自启已设好
  2. systemctl is-active nginx → 返回 active 表示此刻正在运行(可能刚手动 start 过,但没设启用)
  3. 常见误区:看到 is-active active 就以为已启用 —— 实际上它可能只是临时运行,重启后不会自动起来

热门栏目