需使用systemctl list-units等命令组合批量查看麒麟系统服务状态:包括运行、非活跃、失败、启用/禁用状态,依赖关系、进程验证、日志分析及图形化管理。

如果您在麒麟操作系统中需要全面掌握所有系统服务的运行与启用状态,而非仅针对单个服务进行查询,则需使用能批量呈现服务信息的命令组合。以下是多种可覆盖不同维度的服务状态查看方法:
一、使用 systemctl list-units 查看当前加载的服务单元状态
该命令直接调用 systemd 的单元管理接口,按实际加载状态分类列出所有 service 类型单元,不依赖进程存在性,反映 systemd 当前维护的服务视图。
1、查看所有已加载且正在运行的服务:
systemctl list-units --type=service --state=running
2、查看所有已加载但处于非活跃状态的服务:
systemctl list-units --type=service --state=inactive
3、查看所有已加载但失败的服务(含启动失败、崩溃后未重启等):
systemctl list-units --type=service --state=failed
4、查看所有已启用开机自启的服务(无论当前是否运行):
systemctl list-unit-files --type=service --state=enabled
5、查看所有已禁用开机自启的服务:
systemctl list-unit-files --type=service --state=disabled
二、使用 systemctl list-dependencies 查看服务依赖关系图谱
某些服务状态异常可能源于上游依赖未就绪,该命令可展开指定目标服务所依赖的全部单元,辅助定位连锁性停运问题。
1、以图形化缩进方式查看 sshd 服务的完整依赖链:
systemctl list-dependencies --reverse --all sshd
2、仅显示失败依赖项(需配合 --state=failed 使用):
systemctl list-dependencies --reverse --state=failed sshd
3、查看某个服务所依赖的所有 target 单元(如 multi-user.target):
systemctl list-dependencies --type=target sshd
三、使用 ps 与 systemctl 结合验证真实进程状态
systemd 状态可能滞后于实际进程生命周期,尤其在服务崩溃但未被及时重置时。通过进程级扫描可交叉验证服务是否真正存活。
1、列出所有名为 “sshd”、“nginx”、“kylin-kms-activation” 等典型服务主进程:
ps -eo pid,comm,args --sort=-pid | grep -E "(sshd|nginx|kms-activation|firewalld|dbus)"
2、筛选出由 systemd 启动且归属 service 类型的进程:
ps -eo pid,ppid,comm,args | awk '$2==1 && $3 ~ /systemd/ {print $0}' | grep -v "grep"
3、对指定服务名(如 kysec)检查是否存在有效进程实例:
ps -aux | grep kysec | grep -v grep | grep -v "kylin-service-manager"
四、使用 journalctl 批量检索服务启动行为摘要
日志是服务状态的原始证据源,该方法不依赖当前运行态,可回溯最近一次启动尝试的结果,适用于诊断间歇性失效服务。
1、列出所有服务在过去1小时内启动失败的记录:
journalctl --since "1 hour ago" | grep -i "failed to start\|start request repeated too quickly\|unit entered failed state"
2、统计各服务失败次数并排序:
journalctl -p 3 -u "*" 2>/dev/null | grep "Failed" | cut -d' ' -f6 | sort | uniq -c | sort -nr
3、提取所有 service 单元的最新启动时间戳(不含日志内容):
journalctl -b | grep "Started.*service" | tail -20 | awk '{print $1,$2,$3,$5,$6}'
五、使用 ukui-service-manager 图形化批量浏览服务状态
该工具将 systemd 服务抽象为可视化条目,支持多列排序与状态过滤,适合快速识别异常集群或批量操作。
1、启动图形服务管理器:
点击开始菜单 → 搜索“服务管理器” → 回车启动
2、在主界面顶部工具栏点击“刷新”按钮,同步最新 systemd 状态。
3、点击“状态”列标题,按运行/停止顺序重新排序,所有显示“停止”的服务即为当前未运行项。
4、按住 Ctrl 键多选多个服务条目,右键选择“启动”或“停止”,实现批量状态切换。
5、双击任一服务,在弹出窗口中查看其“依赖服务”标签页,红色高亮项表示该依赖当前未运行。










