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

相关推荐

  • linux系统如何ftp服务器配置

    vsftpd或proftpd,编辑配置文件(如/etc/vsftpd.

    2025年8月15日
    17100
  • Linux内存泄露如何排查?检测方法有哪些?

    在Linux系统中,内存泄露是指程序在运行过程中动态分配的内存未被正确释放,导致可用内存逐渐减少,最终可能引发系统性能下降或程序崩溃,检测内存泄露需要结合系统监控工具和专业的内存分析工具,通过观察内存使用趋势、分析内存分配记录等方式定位问题,以下是详细的检测方法和步骤,内存泄露的初步判断:基础监控工具在深入分析……

    2025年10月3日
    13900
  • Linux如何配置IP地址与域名绑定?

    在Linux系统中,将IP地址与域名绑定是网络管理中的常见需求,通常用于本地开发环境、内网服务访问或自建DNS服务器场景,本文将详细讲解通过本地hosts文件、DNS服务器配置以及Web服务器虚拟主机设置三种主要方式实现IP地址与域名的绑定,涵盖操作步骤、注意事项及常见问题排查,通过本地hosts文件实现域名与……

    2025年9月19日
    18600
  • 针对Linux系统,攻击者如何利用漏洞?入侵手段与防范方法有哪些?

    Linux系统因其稳定性、灵活性和开源特性,被广泛应用于服务器、嵌入式设备及桌面环境,但同时也成为攻击者的目标,攻击Linux系统通常涉及多个阶段,从信息收集到权限维持,每个环节都可能利用系统配置漏洞、软件缺陷或用户行为疏忽,本文将从攻击者的视角拆解常见攻击路径,并重点阐述防御策略,帮助理解系统安全防护的核心逻……

    2025年8月26日
    17400
  • 如何删除Linux子目录下的文件?

    在Linux系统中,删除子目录文件是日常运维和开发中常见的操作,但不同场景需要选择不同的命令和方法,以确保操作安全且高效,以下是详细的操作指南,涵盖常用命令、参数说明及注意事项,基础删除命令:rm 与 rmdirrm 命令:通用删除工具rm 是最常用的删除命令,支持删除文件、目录(需配合参数),核心参数如下……

    2025年10月6日
    18800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信