要确认后台服务是否真正激活,应执行systemctl list-units --type=service --state=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 中根本不会出现,但容易误判为“未安装”,需主动识别。

















