Linux如何查看已启动的服务?

在Linux系统中,管理启动服务是系统运维的基础工作,无论是排查服务异常、优化启动速度,还是确保关键服务开机自启,都需要掌握查看启动服务的方法,Linux的服务管理机制因发行版和版本不同而有所差异,主流系统多采用systemd(如Ubuntu 16.04+、CentOS 7+),而较老版本可能使用SysVinit(如CentOS 6),本文将详细介绍不同机制下查看启动服务的方法,并提供实用示例。

linux如何查看启动的服务

基于systemd的系统查看启动服务(主流方式)

systemd是目前Linux发行版广泛采用的服务管理器,通过systemctl命令可以全面管理服务的生命周期,查看启动状态也更为便捷。

查看所有已安装的服务单元

使用systemctl list-unit-files命令可列出系统中所有服务单元文件及其启用状态,过滤出服务类型需添加--type=service参数:

systemctl list-unit-files --type=service

输出包含三列核心信息:UNIT(服务单元名,如nginx.service)、STATE(当前状态,如enabled/disabled/static)、DESCRIPTION(服务描述)。

  • enabled:服务开机自启;
  • disabled:服务开机不自启,需手动启动;
  • static:不可独立启动,通常作为其他服务的依赖。

查看当前活跃的服务

若需了解当前正在运行的服务(包括开机自启和手动启动的),可结合list-units--state=running参数:

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

输出会显示ACTIVE状态为active (running)的服务,并附带加载状态(loaded)和子进程信息(如main PID)。

查看特定服务的启动状态

针对单个服务,可通过is-enabled命令快速判断其是否开机自启:

systemctl is-enabled nginx.service

返回enabled即开机自启,disabled则不自启,若服务不存在则报错。

linux如何查看启动的服务

查看服务自启配置的来源

服务自启配置可能位于多个位置,可通过cat查看服务单元文件中的[Install]段落(通常定义WantedByRequiredBy):

cat /usr/lib/systemd/system/nginx.service | grep -A 5 "[Install]"

其中WantedBy=multi-user.target表示服务在多用户模式(默认启动级别)下自启。

基于SysVinit的系统查看启动服务(老版本兼容)

对于仍在使用SysVinit的系统(如CentOS 6),服务管理依赖chkconfig命令和运行级别目录,查看方式如下:

使用chkconfig查看服务开机状态

chkconfig --list可列出所有服务在不同运行级别(0-6)下的自启状态:

chkconfig --list

输出格式为服务名 级别1:状态 级别2:状态 ...,例如nginx 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭,其中级别2-3为多用户模式,5为图形界面模式,启用表示该级别下开机自启。

查看服务脚本位置

SysVinit的服务脚本存放在/etc/init.d/目录,可通过ls列出所有服务:

ls /etc/init.d/

例如nginxhttpd等脚本均在此目录,可通过/etc/init.d/nginx status查看当前运行状态。

linux如何查看启动的服务

查看运行级别自启服务

各运行级别的自启服务脚本存放在/etc/rc[0-6].d/目录,以S开头(启动)或K开头(关闭)+数字(启动顺序)命名,

ls /etc/rc3.d/

输出中S50nginx表示在级别3下,第50位启动nginx服务。

服务查看方法对比总结

为方便快速查阅,以下表格对比了主流查看方法的适用场景和核心命令:

查看目标 systemd命令 SysVinit命令 说明
查看所有服务及启用状态 systemctl list-unit-files --type=service chkconfig --list systemd显示enabled/disabled,SysVinit显示各级别状态
查看当前运行服务 systemctl list-units --type=service --state=running service --status-all 前者更详细,包含进程ID和运行时长
查看单个服务自启状态 systemctl is-enabled 服务名 chkconfig 服务名 systemd直接返回状态,SysVinit需结合chkconfig --list的输出
查看服务配置来源 cat /usr/lib/systemd/system/服务名 ls /etc/rc*.d/ systemd通过[Install]段落定位,SysVinit通过运行级别目录脚本判断

相关问答FAQs

Q1: 为什么有些服务显示enabled但当前没有运行?
A: enabled仅表示服务配置为开机自启,但实际运行可能受依赖服务未启动、资源不足或服务自身错误影响,可通过systemctl status 服务名查看日志(如journalctl -u 服务名),排查启动失败原因,若服务依赖network.target但网络未就绪,可能导致服务启动失败但状态仍为enabled

Q2: 如何禁止服务开机自启且停止当前运行的服务?
A: 对于systemd系统,使用systemctl disable 服务名禁止开机自启,再通过systemctl stop 服务名停止当前运行;若需彻底移除服务(如删除安装包),则需结合包管理器(如apt remove/yum erase),对于SysVinit系统,执行chkconfig 服务名 off禁止自启,再用service 服务名 stop停止服务。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/20866.html

(0)
酷番叔酷番叔
上一篇 2025年8月31日 12:47
下一篇 2025年8月31日 13:01

相关推荐

  • 如何在u盘运行cdlinux

    CDlinux镜像写入U盘,插入电脑后设置BIOS从U盘启动,即可在U

    2025年8月18日
    6900
  • Linux如何开放UDP端口?

    理解UDP通信原理UDP(User Datagram Protocol)是一种无连接的传输层协议,适用于实时性要求高、允许少量丢包的应用(如DNS查询、VoIP),开启UDP需两步:服务配置:确保应用程序监听UDP端口,防火墙放行:允许外部流量访问该端口,配置服务监听UDP端口以开放UDP端口12345为例(替……

    2025年8月6日
    4600
  • Linux下如何调出xfce4桌面环境?

    xfce4是Linux系统中一款轻量级、高效的桌面环境,因其资源占用低、启动速度快且功能完善,受到许多用户喜爱,尤其是老旧硬件或追求简洁操作系统的用户,要在Linux系统中调出xfce4,通常需要经过安装、启动或切换等步骤,具体操作会因Linux发行版的不同而略有差异,以下将从多个场景详细说明如何调出xfce4……

    2025年9月17日
    4500
  • Linux上传文件最快方法是什么?

    远程服务器文件上传方法SCP(Secure Copy)适用场景:命令行操作、中小文件传输、需加密传输步骤: # 从本地上传文件到远程服务器 scp /本地/文件路径 用户名@服务器IP:/远程/目录/ # 示例:将本地的 report.pdf 上传到远程 /home/user/docs/ scp ~/repor……

    2025年8月6日
    5200
  • Linux系统如何安装与配置输入法?

    在Linux系统中,设置输入法是日常使用中文或其他非拉丁语言的关键操作,Linux输入法的实现依赖于“输入法框架”(Input Method Framework),常见的框架有IBus、Fcitx(4和5版)等,不同框架的配置方式略有差异,但整体流程相似,本文将以主流发行版(如Ubuntu、Fedora、Arc……

    2025年9月23日
    3800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信