TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码

如何查看Linux启动服务列表systemctllist-unit-files用法

2025-07-08
/
0 评论
/
5 阅读
/
正在检测是否收录...
07/08


一、为什么需要了解系统服务列表?

作为Linux系统管理员或开发者,我们经常需要处理各种后台服务。这些服务可能包括Web服务器、数据库、定时任务等。了解如何查看和管理这些服务是系统维护的基础技能。传统Linux使用init.d脚本管理服务,而现代主流发行版(如RHEL 8+/Ubuntu 16.04+)已全面转向systemd体系,其核心控制工具就是systemctl

二、命令基础解析

2.1 基本语法

bash systemctl list-unit-files [选项] [模式匹配]

这个命令会列出所有已安装的单元文件(包括服务、挂载点、设备等),并显示它们在各级运行目标(target)中的启用状态。与systemctl list-units不同,后者只显示当前活跃的单元,而前者会显示系统所有可能的服务配置。

2.2 典型输出示例

bash UNIT FILE STATE auditd.service enabled bluetooth.service disabled chronyd.service enabled ...

每行输出包含两个关键信息:
- UNIT FILE:单元文件名称(.service可省略)
- STATE:服务状态标志

三、状态标志深度解读

理解状态标志是有效管理服务的前提:

| 状态值 | 含义 |
|--------------|----------------------------------------------------------------------|
| enabled | 服务已启用,会在系统启动时自动运行 |
| disabled | 服务已禁用,需要手动启动 |
| static | 该单元不能被直接启用,作为其他单元的依赖存在 |
| masked | 服务被强制禁用(通过符号链接到/dev/null),即使手动启动也会失败 |
| indirect | 服务未直接启用,但被其他单元作为依赖启用 |
| generated | 单元文件由系统在运行时自动生成 |
| transient | 临时单元,由系统运行时创建 |

特别注意:看到masked状态时,表示该服务已被彻底锁定,这是比disabled更严格的禁用方式。例如某些发行版会默认mask蓝牙服务:
bash sudo systemctl unmask bluetooth.service # 解除锁定

四、实战过滤技巧

4.1 按类型过滤

只要服务单元(最常用场景):
bash systemctl list-unit-files --type=service

4.2 按状态筛选

查找所有已启用的服务:
bash systemctl list-unit-files --state=enabled

4.3 模式匹配

使用通配符查找相关服务(如所有nginx相关单元):
bash systemctl list-unit-files 'nginx*'

4.4 显示完整路径

查看单元文件的物理存储位置:
bash systemctl list-unit-files --full

五、与其他命令的协同使用

5.1 结合grep进行二次过滤

查找与网络相关的服务:
bash systemctl list-unit-files | grep -i network

5.2 查看服务详情

发现目标服务后,获取详细信息:
bash systemctl status sshd.service

5.3 服务启停管理

基于查询结果操作服务:
bash sudo systemctl stop cups.service # 停止服务 sudo systemctl disable cups.service # 禁止开机启动

六、实际应用场景

场景1:安全审计

检查不必要的已启用服务:
bash systemctl list-unit-files --state=enabled | grep -v '必要服务关键词'

场景2:故障排查

当某功能异常时,先确认相关服务状态:
bash systemctl list-unit-files | grep -E 'docker|containerd'

场景3:系统优化

识别可以禁用的服务以提升启动速度:
bash systemctl list-unit-files --type=service --state=enabled

七、注意事项

  1. 权限区别:普通用户可查询列表,但启停服务需要sudo权限
  2. 状态缓存:修改服务状态后,建议刷新systemd配置:
    bash sudo systemctl daemon-reload
  3. 发行版差异:不同Linux发行版默认启用的服务可能不同
  4. 依赖关系:禁用服务前应检查依赖项:
    bash systemctl list-dependencies sshd.service
Linux服务管理systemctl命令systemd单元文件启动项控制服务状态查询
朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/32118/(转载时请注明本文出处及文章链接)

评论 (0)