麒麟OS如何查看正在运行的服务

作者:技术拾光时间:2026-07-09 12:54:06浏览:361

麒麟OS查看运行服务推荐使用systemctllist-units--type=service--state=running命令,准确显示实际运行服务。精简命令systemctl--type=service--state=running同样有效。旧环境service--status-all可能误判,需用ps命令辅助验证进程真实性。

查看麒麟OS正在运行的服务,最为准确的方法是使用命令 systemctl list-units --type=service --state=running。该命令仅显示当前由 systemd 加载且状态为 active (running) 的服务,而 inactive、failed 或未加载的单元均不显示。简而言之,它直接呈现实际在运行的服务,所见即所得。

麒麟OS如何查看正在运行的服务

之所以首先介绍该命令,是因为用户需要快速确认麒麟OS当前有哪些服务正在后台运行,而非仅关注它们是否已安装或是否设置为开机自启。这两者存在本质区别:有些服务虽已启用但并未启动,有些服务因异常崩溃后,systemd 可能仍错误标记为 active 状态,导致误判。

用 systemctl list-units 查看实时运行的服务

这是最直接可靠的方法。打开终端(快捷键 Ctrl+Alt+T),输入以下命令:systemctl list-units --type=service --state=running。输出结果包含以下几列:第一列服务名(例如 sshd.service),第二列加载状态(loaded),第三列激活状态(active),第四列子状态(running)。只有第三列为 active 且第四列为 running 的服务才表示正在运行,其他组合则表明服务未启动或已退出。如需查看服务的描述信息,可添加 --all 参数:systemctl list-units --type=service --state=running --all,输出更完整,但核心逻辑不变。

用 systemctl --type=service --state=running 快速筛选

该命令与上述命令本质相同,但更为精简,适合在脚本中调用或快速复核结果。在终端输入:systemctl --type=service --state=running。注意,此命令不会显示 failed 或 activating 状态的服务,也不会列出 socket、timer 等非服务类型单元。如果服务名后显示 (running),表示当前确实在工作;若显示 (exited),即使激活状态为 active,也仅表明主进程已退出,仅剩空壳。

用 service --status-all 兼容旧环境(慎用)

部分深度定制的麒麟OS版本(如某些政务专用镜像)仍保留 SysV init 兼容层。此时可使用 service --status-all 粗略查看服务开关标识。命令:service --status-all。输出中,+ 开头表示服务脚本存在且正在运行,- 表示存在但未运行, 表示状态不确定。但需注意:此命令不经过 systemd,无法反映由 systemd 托管但未通过 /etc/init.d 启动的服务的真实状态。例如,通过 systemctl start 启动的 nginx.service,在该命令下可能显示为 或 -,容易误判。如果执行时提示 bash: service: command not found,说明系统已移除 sysvinit 兼容包,应直接使用 systemctl 方案。

用 ps 辅助验证关键服务进程是否存在

有时 systemctl 显示某服务为 active (running),但业务无法响应。此时需要进一步确认其主进程是否真实运行——避免因 systemd 状态未同步或服务已变为僵尸进程而导致误判。操作分两步:首先,查出服务对应的主进程名。例如,sshd.service 的进程名通常为 sshd,mysqld.service 对应 mysqld,kylin-kms-activation.service 对应 kylin-kms-activation。其次,执行过滤命令(使用 grep 字符匹配技巧避免匹配到 grep 自身):ps aux | grep '[s]shd'。检查输出:若存在非 grep 的行且包含 /usr/sbin/sshd 或 /usr/bin/sshd 等路径,说明进程真实存在;若仅有 grep 自身,则进程已终止但 systemd 状态未刷新。此方法仅作为交叉验证,不能替代 systemctl。例如 dbus-daemon 虽然可通过 ps 看到,但它是系统核心守护进程,不可随意 kill。