linux查看系统启动了什么服务器?linux查看开机启动服务命令

在Linux上查看系统启动了哪些服务,本质上就是检查systemd或SysVinit管理的单元状态,最直接的方法是运行systemctl list-units --type=service --state=running这个命令能一秒列出所有正在运行的服务单元,配合ssnetstat还能看清对应的端口占用,下面我把从入门到进阶的排查思路完整拆开讲,包括服务列表、监听端口、开机自启项以及性能影响,保证你看完就能上手实操。

快速查看正在运行的服务:systemctl 是首选

大多数现代Linux发行版(CentOS 7+、Ubuntu 16.04+、Debian 8+)都使用systemd作为初始化系统,我们要查“启动了什么服务器”,指的就是那些常驻后台、对外提供功能的守护进程,比如Nginx、MySQL、SSH。

最常用三个命令

  • systemctl list-units --type=service --state=running:列出所有正在运行的服务单元,输出包含服务名、加载状态、活跃状态、描述信息。
  • systemctl list-units --type=service --all:列出所有服务,包括未运行的、退出的、失败的,适合排查“为什么某服务没起来”。
  • systemctl status(不带参数):分页展示系统整体状态,末尾会自动汇总当前正在运行的服务数量。

实际使用中,第一条命令输出可能很长,建议配合grep过滤,比如只看包含nginx的:systemctl list-units --type=service --state=running | grep nginx

深入理解输出字段

执行systemctl list-units --type=service后,你会看到四列信息:

  • UNIT:服务单元名称,例如ssh.service,这是管理服务的唯一标识。
  • LOAD:是否已正确加载到内存,通常都是“loaded”。
  • ACTIVE:活跃状态,正运行是“active”,退出是“inactive”,失败是“failed”。
  • SUB:更细粒度的状态,running”“dead”“exited”。

业内专家普遍认为,判断一个服务是否真正“启动”,要看ACTIVE列的“active”和SUB列的“running”同时满足,有些人只看ACTIVE是active就放心了,其实像NetworkManager.service这类服务ACTIVE为active但SUB是“running”才正常,而某些oneshot服务active但SUB是“exited”,这是预期行为,不用紧张。

排查特定服务的启动状态

如果怀疑某个服务没起来,直接systemctl status 服务名,比如systemctl status nginx,它会显示该服务是否加载、PID是多少、内存占用、最近日志,这个命令同时回答了“linux怎么查看开机启动的服务”和“某个服务现在跑没跑”两个问题。

linux查看服务器运行状态命令:从进程到端口的完整链路

linux查看系统启动了什么服务器?linux查看开机启动服务命令

光看服务列表不够,你还需要确认服务是否真的在监听网络端口,这就是许多运维在排查“linux查看服务器运行状态命令”时的核心诉求。

用 ss 命令查监听端口

现代系统推荐ss,性能比netstat好,执行:

ss -tlnp

  • -t 显示TCP端口
  • -l 仅显示监听中的socket
  • -n 不反解域名,直接显示IP和端口
  • -p 显示占用该端口的进程PID和名称

输出里你会看到0.0.0:80:3306这类监听地址,如果Nginx装了但没监听80端口,说明配置可能有问题或者进程没起来。

用 ps 命令核对进程

ps -ef | grep 服务名能快速看到进程是否存在,但要注意,grep本身也会匹配到一条记录,所以很多人习惯用ps -ef | grep nginx | grep -v grep

不过我更推荐直接systemctl status,因为系统会明确告诉你主进程PID和子进程情况,不用猜。

端口和服务对照表:快速定位谁占用了端口

命令组合 作用 适用场景
ss -tlnp 查看所有TCP监听端口和对应进程 想知道哪些服务对外开放了端口
ss -ulnp 查看UDP监听端口 排查DNS、NTP等服务
lsof -i:8080 查看指定端口被哪个进程占用 端口冲突时精准定位
systemctl status 服务名 查看服务日志和运行详情 服务异常退出时排查原因

比如你发现8080端口被占用,但不知道是谁占的,用lsof -i:8080直接看到PID和进程名,再ps -fp PID确认这是不是你要的服务,这套组合拳在“linux查看系统启动了什么服务”的日常运维中非常实用。

查看开机自启服务:搞清下次重启后谁会启动

“启动了什么服务器”既指当前正在运行的,也指开机后自动运行的,很多人混淆这两个概念,其实systemd把它们分得很清楚。

查看自启状态

systemctl list-unit-files --type=service

这个命令列出所有已安装服务单元文件的启用状态,输出有“enabled”“disabled”和“static”三种:

  • enabled:开机自动启动。
  • disabled:开机不启动,需要手动启动。
  • static:无法直接启用,一般被其他服务依赖,由依赖方触发启动。

配合grep enabled就能筛出所有开机自启的服务:systemctl list-unit-files --type=service | grep enabled

linux查看系统启动了什么服务器?linux查看开机启动服务命令

单独查某个服务的自启状态

systemctl is-enabled nginx,输出enabled或disabled,再配合systemctl is-active nginx判断当前有没有运行,两个命令一起用就能得出完整结论。

修改自启状态

  • 开启自启:systemctl enable 服务名
  • 关闭自启:systemctl disable 服务名
  • 仅临时启动,不改自启:systemctl start 服务名

这里有个常见的坑:systemctl start只是当前启动,重启后如果状态是disabled,服务照样不会出现,反过来,systemctl enable不会立刻启动服务,只是创建了符号链接,要真正做到“现在跑且下次开机也跑”,需要同时执行start和enable。

没有systemd的老系统怎么办:SysVinit和service命令

如果你还在维护CentOS 6或Ubuntu 14.04这类老系统,就得换一套查看方式。

查看运行中的服务

service --status-all是所有SysVinit服务管理脚本的通用开关,输出里每个服务前会有一个标记:

  • [ + ]:服务正在运行
  • [ - ]:服务已停止
  • [ ? ]:脚本无法返回状态,需要自己判断

这个命令不如systemd直观,但能快速看到所有注册服务脚本的启停状态。

查看开机自启

SysVinit用chkconfig管理自启:

chkconfig --list

会列出每个服务在各运行级别下的开启状态,例如nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off,表示在运行级别2、3、4、5时自动启动。

对比新老系统查看服务的方法

操作 systemd系统(CentOS7+/Ubuntu16.04+) SysVinit系统(CentOS6及更早)
查看运行中的服务 systemctl list-units --type=service --state=running service --status-all
查看开机自启 systemctl list-unit-files --type=service chkconfig --list
查看单个服务状态 systemctl status 服务名 service 服务名 status
设置开机自启 systemctl enable 服务名 chkconfig 服务名 on

如果你不确定当前用的是哪种,执行ps -p 1,输出是systemd就按新体系操作,输出是init就按老体系操作。

深入排查:服务启动失败或占用资源过高怎么办

查看服务不只是“看列表”,更重要的是判断服务状态是否健康,下面这些场景你大概率会遇到。

服务一直重启(crashed loop)

linux查看系统启动了什么服务器?linux查看开机启动服务命令

服务状态显示“activating (auto-restart)”,说明进程反复崩溃,先journalctl -u 服务名 -n 100看最近的日志,systemd统一了日志管理,不用去翻/var/log/messages,直接按服务名过滤即可。

服务启动但没监听端口

有些服务进程活着,但没对外提供服务,比如Nginx检查配置出错时,主进程可能起不来,但worker进程还在,执行ss -tlnp确认端口是否在监听,再用nginx -t测试配置语法。

高资源占用服务定位

如果服务器CPU或内存告警,需要找出最占资源的服务,用topP键按CPU排序,按M键按内存排序,看到PID后,用systemctl status PID直接反查它属于哪个服务单元,这个技巧在回答“linux查看服务器运行状态命令”时经常用得上,比一个个服务去猜效率高得多。

常见问题:服务到底存不存在

有时候你运行systemctl status some-service,系统提示“Unit some-service.service could not be found”,这不代表服务没装,可能有三种原因:

  • 服务名称不对,比如mysqldmysql可能是两个不同的单元。
  • 服务由第三方软件包提供,但没安装对应的systemd unit文件。
  • 服务被隐藏在别的目录,比如用户级服务,用systemctl list-unit-files --type=service --all看完整列表,或者用systemctl list-units --type=service --all | grep 关键词模糊搜索。

Q&A:关于查看Linux启动服务的三个常见疑问

systemctl list-units和systemctl list-unit-files有什么区别?

list-units展示的是当前系统内存中加载的单元状态,涉及运行中、已退出、失败的服务,反映的是“现在时”。list-unit-files展示的是磁盘上unit文件的配置状态,即enabled或disabled,反映的是“下一次开机后”,两者是互补关系,前者管现状,后者管自启策略。

为什么ss -tlnp需要root权限才能看到进程名?

普通用户执行ss -tlnp时,如果没有sudo,进程名和PID列显示不出来,只能看到端口,这是因为/proc目录下部分进程信息对普通用户不可见,解决方法是sudo ss -tlnp,否则只能确认端口占用,无法确认是哪个服务进程在监听。

Linux下有没有类似Windows任务管理器一样的服务查看界面?

严格意义上的图形化服务管理器不多,但htop配合systemctl基本能满足需求。htop能直观看到所有线程的CPU和内存占用,按F4搜索进程名,再对照systemctl status确认服务归属,对于纯命令行环境,这条组合是目前最高效的服务状态检查方式。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/824779.html

(0)
上一篇 2026年9月16日 11:40
下一篇 2026年9月16日 11:46

相关推荐

  • 服务器内存条2133p频率是什么意思,2133p频率多少合适

    服务器内存条2133p频率是指内存模块运行在2133MHz的时钟频率,属于DDR4内存标准下的PC4-2133P规格,是当前主流服务器内存的常见配置之一,这项参数直接决定了内存与CPU之间的数据交换速度,进而影响服务器在多任务处理、数据库查询和虚拟化场景下的吞吐能力,对于追求性价比的运维团队,2133p频率在平……

    2026年8月6日
    01015
  • cs2官服被服务器踢出为什么,官服踢人原因及解决办法

    cs2官服被服务器踢出,绝大多数情况跟封号无关,而是网络波动、VAC验证失败、游戏文件加载异常或服务器本身过载这几类原因在作怪,先别急着重装游戏,按顺序排查下面的环节,多数问题半小时内能解决,cs2服务器踢人原因有哪些?先从你的网络说起官服匹配服务器对连接质量的要求,比绝大多数社区服都严格,你这边觉得“还能打……

    2026年8月31日
    0422
  • 华为服务器h00报警什么意思,h00故障代码含义及处理方法?

    华为服务器H00报警通常表示服务器硬件自检或运行过程中检测到了异常,它不是一个独立的官方错误代码,而是前面板诊断码中的一类,具体指向哪个部件需要结合服务器型号和iBMC日志来确认,华为服务器H00报警是什么意思?H00报警在华为FusionServer系列服务器上并不少见,它通常出现在前面板的LCD小屏幕或故障……

    2026年9月5日
    0771
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 我的世界服务器jc是什么意思,我的世界jc服务器是什么梗

    在《我的世界》服务器聊天栏、公告或者管理群消息里看到“JC”这个词,十有八九是在说“基础”——也就是基础插件、基础权限或者基础配置,它不是一个具体的游戏指令,而是服务器圈子里流传的拼音缩写,理解这一点,你就能看懂大部分相关对话了,服务器公告里的jc是什么意思不同场景下,JC的具体含义会略有偏移,根据玩家讨论和服……

    2026年9月10日
    0302

发表回复

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

评论列表(4条)

  • 风风6922的头像
    风风6922 2026年9月16日 11:45

    这篇文章写得非常好,内容丰富,观点清晰,让我受益匪浅。特别是关于服务名的部分,分析得很到位,给了我很多新的启发和思考。感谢作者的精心创作和分享,期待看到更多这样高质量的内容!

  • brave924er的头像
    brave924er 2026年9月16日 11:47

    这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是服务名部分,给了我很多新的思路。感谢分享这么好的内容!

  • 魂魂9518的头像
    魂魂9518 2026年9月16日 11:47

    读了这篇文章,我深有感触。作者对服务名的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!

  • cute688er的头像
    cute688er 2026年9月16日 11:47

    这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是服务名部分,给了我很多新的思路。感谢分享这么好的内容!