最准确方法是执行systemctl list-units --type=service --state=running,它只显示当前被systemd加载且状态为active(running)的服务,排除inactive、failed或未加载单元,确保所见即真实运行状态。

你需要快速确认麒麟操作系统当前有哪些服务真正在后台运行,而不是只看它们是否被安装或设置为开机自启——因为有些服务虽已启用但并未启动,有些则因异常崩溃后仍被 systemd 错误标记为 active。
用 systemctl list-units 查看实时运行的服务
这是最准确、最直接的方式,它只显示当前已被 systemd 加载且状态为 running 的服务单元,不包含 inactive、failed 或未加载的服务。
打开终端(快捷键 Ctrl+Alt+T),执行以下命令:
systemctl list-units --type=service --state=running
输出结果中每行第一列是服务名(如 sshd.service),第二列是加载状态(loaded),第三列是激活状态(active),第四列是子状态(running)。【只有第三列为 active 且第四列为 running 的服务,才是真正正在运行的】
用 systemctl --type=service --state=running 快速筛选
该命令与上一方法本质相同,但更简洁,适合脚本调用或快速复核。
在终端中输入:
systemctl --type=service --state=running
注意:这个命令不会显示 failed 或 activating 状态的服务,也不会列出 socket、timer 等非 service 类型单元。如果看到某服务名后跟 (running),说明它当前确实处于工作状态;若显示 (exited),哪怕状态是 active,也代表主进程已退出,仅留空壳。
用 ps 辅助验证关键服务进程是否存在
当 systemctl 显示某个服务为 active (running),但业务无响应时,需进一步确认其主进程是否真实存活——避免 systemd 状态与实际进程脱节。
第一步:查出目标服务的主进程名,例如 nginx.service 对应 nginx,dbus.service 对应 dbus-daemon。
第二步:执行命令过滤进程:
ps aux | grep '[n]ginx'
这里用 [n]ginx 是为了避开 grep 自身进程干扰,确保只显示真实运行中的 nginx 工作进程。
第三步:若返回多行(含 master 进程和 worker 进程),说明服务进程层正常;若仅返回 grep 行或无输出,则进程已终止,需检查 journalctl -u nginx 日志定位原因。











