Linux服务器查询当前启动服务是系统管理的基础操作,主流方法包括:使用systemctl list-units --type=service(适用于systemd系统,列出当前运行的服务及状态,如active/failed);传统系统可通过chkconfig --list查看各运行级别下的服务启用状态;ps aux | grep [服务名]可定位特定进程,确认服务是否运行,这些方法分别从服务管理器、运行级别和进程角度提供查询途径,帮助管理员快速掌握服务运行状态,便于故障排查与系统维护。
在Linux服务器管理中,了解当前启动的服务状态是系统运维、故障排查、安全审计的基础工作,无论是排查服务异常、优化系统资源,还是确保关键服务正常运行,准确查询当前启动的服务都至关重要,本文将详细介绍不同Linux发行版中查询当前启动服务的常用方法,涵盖主流的systemd系统与传统SysVinit系统,帮助读者快速掌握实用技能。
为何需要查询当前启动的服务?
在开始具体操作前,先明确查询启动服务的核心场景:
- 故障排查:当网站无法访问、数据库连接失败时,需确认对应服务(如nginx、mysql)是否正常运行;
- 系统优化:识别非必要的服务(如废弃的监听端口、冗余的自启服务),关闭以释放资源;
- 安全审计:检查是否有异常服务(如未授权的远程控制工具)随系统启动,防范安全风险;
- 环境迁移:在服务器迁移或系统重装时,记录当前启动的服务列表,确保环境一致性。
确认系统环境:systemd还是SysVinit?
Linux系统的服务管理机制因版本而异,查询方法也因此不同,首先需确认当前系统使用的初始化系统(init system),可通过以下命令判断:

ps -p 1 -o comm=
- 若输出为
systemd,则系统采用systemd(现代Linux发行版主流,如CentOS 7+、Ubuntu 16.04+、Debian 8+等); - 若输出为
init,则系统为传统SysVinit(老旧系统,如CentOS 6、Ubuntu 14.04等)。
systemd系统:使用systemctl查询(推荐)
systemd是目前Linux系统的标准初始化系统,通过systemctl命令可高效管理服务,以下是查询当前启动服务的核心方法:
查询所有正在运行的服务
使用systemctl list-units命令,配合--type=service和--state=running参数,可列出当前运行的所有服务:
systemctl list-units --type=service --state=running
输出说明:
UNIT:服务名称(如nginx.service);LOAD:服务是否加载(loaded表示已加载);ACTIVE:当前状态(active表示运行中);SUB:子状态(如running、exited等);DESCRIPTION:服务描述(如"The nginx HTTP and reverse proxy server")。
若需简化输出(仅显示服务名和状态),可添加--no-pager和--plain参数:
systemctl list-units --type=service --state=running --no-pager --plain
查询所有服务(含未运行状态)
若需查看所有服务(无论是否运行),可去掉--state=running参数:
systemctl list-units --type=service
此时输出会包含inactive(未运行)、failed(失败)等状态的服务,方便全面排查。
查询特定服务的状态
若需确认某个具体服务(如nginx)是否启动,使用status命令:
systemctl status nginx.service
输出说明:
- 若显示
Active: active (running),则服务正在运行; - 若显示
Active: inactive (dead),则服务未运行; - 若显示
Active: failed,则服务启动失败,需查看日志(journalctl -u nginx.service)排查错误。
服务名称可省略.service后缀,即systemctl status nginx效果相同。
查看开机自启的服务
“当前启动服务”通常包含“开机自启的服务”,可通过list-unit-files查询:
systemctl list-unit-files --type=service | grep enabled
输出说明:
UNIT:服务名称;STATE:enabled表示开机自启,disabled表示不自启,static表示依赖其他服务。
若需查看所有服务的开机自启状态(含disabled服务),去掉grep:
systemctl list-unit-files --type=service
查看服务依赖关系
若需了解服务间的依赖关系(如nginx依赖哪些服务),使用list-dependencies:
systemctl list-dependencies nginx.service
可帮助排查因依赖服务未启动导致的主服务异常问题。
SysVinit系统:使用service和chkconfig查询
对于老旧的SysVinit系统(如CentOS 6),服务管理通过service和chkconfig实现,查询方法如下:

