Linux服务器当前启动服务查询方法详解

admin
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),可通过以下命令判断:

Linux服务器当前启动服务查询方法详解

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:子状态(如runningexited等);
  • 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:服务名称;
  • STATEenabled表示开机自启,disabled表示不自启,static表示依赖其他服务。

若需查看所有服务的开机自启状态(含disabled服务),去掉grep

systemctl list-unit-files --type=service

查看服务依赖关系

若需了解服务间的依赖关系(如nginx依赖哪些服务),使用list-dependencies

systemctl list-dependencies nginx.service

可帮助排查因依赖服务未启动导致的主服务异常问题。

SysVinit系统:使用servicechkconfig查询

对于老旧的SysVinit系统(如CentOS 6),服务管理通过servicechkconfig实现,查询方法如下:

1

文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码