最直接方式是用systemctl命令查服务状态:1. systemctl status查看运行、启用等全状态;2. is-active快速判断是否活跃;3. is-enabled确认开机自启;4. ps+grep验证进程真实存在;5. journalctl查日志定位异常。

如果您在麒麟操作系统中需要确认某个服务当前是否运行、是否启用开机自启,或排查服务异常,最直接的方式是使用 systemd 提供的标准命令进行状态查询。以下是查看服务状态的具体操作方法:
一、使用 systemctl status 查看指定服务运行状态
该命令用于获取服务的实时运行状态、启动时间、主进程PID、最近日志摘要及启用状态等核心信息,是诊断服务问题的第一步。
1、打开终端(可通过快捷键 Ctrl+Alt+T 或在应用菜单中搜索“终端”)。
2、输入以下命令并回车,将 service_name 替换为实际服务名,例如 ssh 或 kylin-kms-activation.service:
systemctl status service_name
3、观察输出中的 Active 行:若显示 active (running),表示服务正在运行;若为 inactive (dead),表示已停止;若含 failed 字样,则服务启动失败,需结合日志进一步分析。
二、使用 systemctl is-active 快速判断服务活跃状态
该命令仅返回服务当前是否处于活动状态,输出简洁(如 “active” 或 “inactive”),适用于脚本判断或快速验证,不显示详细信息。
1、在终端中执行以下命令:
systemctl is-active service_name
2、若返回结果为 active,说明服务当前正在运行;若返回 inactive 或 unknown,则服务未运行或未被识别。
三、使用 systemctl is-enabled 查询服务开机自启状态
该命令用于确认服务是否配置为随系统启动自动加载,对运维巡检和故障复现具有关键参考价值。
1、在终端中输入:
systemctl is-enabled service_name
2、若输出为 enabled,表示已设置开机自启;若为 disabled,则未启用;若为 static 或 indirect,表示该服务不能独立启用,依赖其他单元触发。
四、结合 ps 与 grep 检查服务对应进程是否存在
当 systemctl status 显示服务为 active,但业务无响应时,可进一步验证其底层进程是否真实存在,排除僵尸服务或进程崩溃但状态未同步的情况。
1、执行以下命令,替换 service_name 为服务对应的主进程名(如 sshd、kms-activation):
ps -aux | grep service_name
2、检查输出中是否包含非 grep 自身的进程行,例如含有 /usr/bin/kms-activation 或 sshd: 字样的有效进程记录。
3、若仅见 grep 命令自身行,且无其他匹配项,说明该服务虽被 systemd 记录为运行,但实际进程已终止。
五、使用 journalctl 查看服务近期日志辅助定位异常
当服务状态异常(如 failed)时,systemctl status 末尾通常提示使用 journalctl 查看完整日志,该命令可提取服务启动、崩溃、报错等原始输出。
1、在终端中运行:
journalctl -u service_name --since "1 hour ago"
2、若需查看全部历史日志,省略时间参数:
journalctl -u service_name
3、重点关注以 Failed to start、Segmentation fault、Permission denied 开头的行,这些是典型故障线索。










