systemctl status可查看服务详细状态,包括激活状态、PID、加载状态、日志等;is-active仅返回active/inactive/failed;list-units --state=running列出所有运行中服务;is-enabled检查开机自启配置;journalctl -u用于查服务历史日志。

如果您需要确认某个服务在Linux系统中是否正常运行、处于何种状态或其配置加载情况,则可能是由于服务未启动、异常退出或状态信息不明确。以下是查看服务状态的多种方法:
一、使用systemctl status查看指定服务详细状态
该命令提供服务当前激活状态、主进程ID、加载状态、最近日志片段及依赖进程结构,是诊断服务运行状况最直接的方式。
1、打开终端,输入命令:systemctl status 服务名(例如:systemctl status nginx)。
2、观察输出中Active:字段值:若为active (running)表示服务正在运行;若为inactive (dead)表示已停止;若为failed则表明启动失败。
3、检查Loaded:字段后括号内容,如enabled表示已设置开机自启,disabled则未启用。
4、按q键退出交互式状态界面。
二、使用systemctl is-active快速获取服务当前运行状态
该命令仅输出服务此刻的激活状态字符串,适用于脚本判断或快速验证,不显示日志与进程细节。
1、在终端中执行:systemctl is-active 服务名(例如:systemctl is-active sshd)。
2、返回结果可能为:active、inactive或failed。
3、如需静默执行并依赖退出码判断,可添加--quiet参数,随后通过$?获取状态码。
三、列出所有正在运行的服务
该方法用于全局掌握当前活跃服务列表,排除已加载但未运行的服务干扰,适合批量排查或运维巡检。
1、执行命令:systemctl list-units --type=service --state=running。
2、输出仅包含状态为active (running)的服务条目,每行含服务名、加载状态、描述及激活时间。
3、若需限制输出行数便于浏览,可追加-n 数字(例如:-n 20)。
四、查看服务开机自启状态
该操作区分“当前是否运行”与“是否配置为开机启动”,避免将is-enabled误认为is-active,防止因理解偏差导致误判。
1、执行命令:systemctl is-enabled 服务名(例如:systemctl is-enabled cron)。
2、返回值包括:enabled(开机自启)、disabled(未设自启)、static(不可enable,仅作依赖触发)。
3、注意:static类型服务(如sysinit.target)虽不能手动enable,但仍可能被其他单元自动激活。
五、结合journalctl查看服务历史日志
当systemctl status仅显示摘要且无法定位异常原因时,需调取完整日志流,尤其关注服务崩溃前的最后输出。
1、执行命令:journalctl -u 服务名 --since "1 hour ago"(例如:journalctl -u docker --since "1 hour ago")。
2、若需实时跟踪新日志,添加-f参数:journalctl -u 服务名 -f。
3、若服务刚发生故障,使用journalctl -u 服务名 --no-pager | tail -30可快速提取末尾30行关键信息。
4、注意日志中出现Failed with result 'exit-code'表示进程主动退出;出现'signal'则提示被外部信号终止(如OOM killer或手动kill)。


















