服务器测评网
我们一直在努力

如何查看Linux系统所有已启动和自启的服务列表?

在Linux系统中,服务管理是系统运维的核心工作之一,无论是启动、停止服务,还是查看系统运行的所有服务状态,都需要掌握高效且准确的方法,本文将详细介绍在Linux系统中查看所有服务的多种方式,帮助用户根据不同需求选择合适的命令。

如何查看Linux系统所有已启动和自启的服务列表?

使用systemctl命令(现代Linux发行版)

当前主流的Linux发行版(如CentOS 7+、Ubuntu 16+、Debian 8+等)广泛采用systemd作为初始化系统,其管理工具systemctl功能强大且使用便捷,通过systemctl可以全面查看系统服务的运行状态、启用状态及详细信息。

查看所有服务(包括已加载和未加载)

执行以下命令可列出系统中所有定义的服务(包括启用、禁用、静态服务等):

systemctl list-unit-files --type=service

该命令会显示服务的名称、加载状态(enabled/disabled/static)和当前是否激活。

服务名 状态 启用情况
sshd.service enabled enabled
nginx.service disabled disabled
docker.service static enabled

查看正在运行的服务

若需仅查看当前活动的服务,可使用:

systemctl list-units --type=service --state=running

该命令会显示正在运行的服务及其负载状态(loaded)、活动状态(active)和子进程状态。

查看所有服务的状态(包括非运行状态)

systemctl list-units --type=service --all

此命令会列出所有服务,包括停止的、失败的或inactive的服务,并显示其详细状态。

如何查看Linux系统所有已启动和自启的服务列表?

过滤特定服务

结合grep命令可快速筛选目标服务,查看所有包含nginx的服务:

systemctl list-units --type=service | grep nginx

使用service命令(兼容旧版系统)

对于仍使用SysV init系统的Linux发行版(如CentOS 6、Ubuntu 14等),service命令是管理服务的传统工具,虽然无法直接列出所有服务,但可通过chkconfig(RedHat系)或update-rc.d(Debian系)配合使用。

查看所有服务的运行状态

service --status-all

该命令会输出所有服务的状态,[ + ]表示运行,[ - ]表示停止,[ ? ]表示状态未知。

结合chkconfig查看服务启用状态(RedHat系)

chkconfig --list

该命令会显示所有服务的开机启动状态(on/off)和运行级别。

使用ps和grep命令(查看进程级服务)

若需从进程角度查看服务,可结合psgrep命令。

ps aux | grep -v grep | grep service_name

通过过滤进程列表,可以直观查看服务的进程ID(PID)和运行参数,但此方法无法直接反映服务的启用状态或依赖关系。

如何查看Linux系统所有已启动和自启的服务列表?

使用ls命令查看服务脚本目录

直接查看服务脚本存放目录也是了解服务的一种方式:

  • SysV init系统/etc/init.d/目录下存放所有服务脚本。
  • systemd系统/etc/systemd/system/目录下存放服务单元文件。

执行ls /etc/init.d/ls /etc/systemd/system/ | grep .service可列出所有服务文件名。

总结与选择建议

命令 适用系统 优势 局限性
systemctl systemd系统 功能全面,支持状态管理、依赖关系 不适用于旧版init系统
service --status-all SysV init系统 兼容性好,直观显示运行状态 无法直接查看启用状态
ps aux | grep 所有系统 可查看进程细节 需手动过滤,信息不全面
ls /etc/init.d/ SysV init系统 直接查看服务脚本 无法获取运行状态

在实际操作中,建议优先使用systemctl命令,因其能提供最全面的服务信息,对于旧版系统,可结合servicechkconfig实现服务管理,掌握这些方法后,用户可根据系统环境和需求灵活选择,高效完成服务查看与管理任务。

赞(0)
未经允许不得转载:好主机测评网 » 如何查看Linux系统所有已启动和自启的服务列表?