要确认后台服务真实运行状态,应执行systemctl list-units --type=service --state=running;该命令仅显示loaded且active (running)的服务,再用systemctl status或systemctl is-active验证关键服务,同时排查masked服务干扰。

你需要快速确认当前系统中哪些后台服务已成功启动并处于活跃状态,而不是只看配置是否启用或服务文件是否存在,必须执行能反映真实运行态的命令。
用systemctl列出所有正在运行的服务
执行命令:systemctl list-units --type=service --state=running。
该命令会过滤出当前实际处于 active (running) 状态的服务,排除已加载但未启动、失败或被禁用的项,结果最贴近“已激活”的真实含义。
输出列表中每行第一列是服务名(如dbus.service),第二列显示loaded,第三列明确标为active,第四列为running——这四者同时满足,才代表服务真正在跑。
用systemctl status逐个验证关键服务
方法一:查看单个服务详细状态
输入systemctl status sshd(将sshd替换为你关心的服务名,如nginx、mysql)。
重点看 “Active:”行:只有显示active (running)才算已激活;若为inactive (dead)或failed,说明服务没起来或启动异常。
方法二:脚本化批量检查
运行for s in sshd nginx mysql; do echo "$s:"; systemctl is-active "$s" 2>/dev/null || echo "not found"; done。
这一步会依次输出每个服务的运行状态,返回active即表示该服务当前已激活。注意:如果服务名拼错或未安装,会显示not found,不会报错中断。
排除masked服务干扰
第一步:列出所有服务单元文件状态
systemctl list-unit-files --type=service
第二步:筛选出状态为masked的服务行,例如bluetooth.service masked。
被【masked】的服务无法启动,即使你执行systemctl start也会失败,必须先sudo systemctl unmask bluetooth.service才能解除封锁。这类服务在list-units --state=running中根本不会出现,但容易误判为“未安装”,需主动识别。











