linux查看已经启动了哪些服务器

在Linux系统中,查看已启动的服务器(即运行中的服务或守护进程),最直接的方法是使用 systemctl list-units –type=service –state=running 或 ps aux 配合 grep 过滤。 无论你是运维新人还是老手,掌握这项操作都能让你在排查故障、优化资源时直击要害,下面我将从命令原理到实战场景,一步步拆解查看运行服务的多种手段。

为什么需要查看已启动的服务器

日常运维中,我们常遇到端口冲突、进程僵死、资源异常飙高的情况,快速列出当前运行的服务,能帮我们判断哪些进程在消耗CPU与内存,有没有非预期的服务偷偷启动,安全审计时,这一步更是基础检查是否有多余的监听端口或可疑守护进程,据Red Hat官方文档,现代Linux系统主要依赖systemd管理服务,但传统SysV init脚本在部分发行版中依然存在,因此掌握多种查看方法十分必要。

如何查看Linux的IP地址
加载中
如何查看Linux的IP地址

常用命令一览:快速定位运行中的服务

以下命令覆盖了主流Linux发行版,你可以根据系统环境选择最顺手的方式。

  • systemctl(systemd发行版,如CentOS 7+、Ubuntu 16.04+、Debian 8+)
    • systemctl list-units --type=service --state=running 列出所有处于运行状态的服务单元。
    • systemctl list-units --type=service --state=active 包含运行中、退出后重新启动等活跃状态。
    • systemctl list-units --type=service --all 查看所有服务,包括未启动的。
  • service(兼容SysV init的发行版,如CentOS 6、Ubuntu 14.04)
    • service --status-all 显示所有服务的状态,但不会直接告诉你是否正在运行,需要结合 init 脚本的输出判断。
  • ps(通用进程查看,任何发行版)
    • ps aux | grep -E "httpd|nginx|mysql|sshd" 通过匹配已知服务名查找。
    • ps -ef --forest 以树形结构显示进程,便于观察父子关系。
  • netstat / ss(网络监听角度)
    • netstat -tlnp 或 ss -tlnp 列出所有TCP监听端口及对应的进程PID。
    • netstat -ulnp 或 ss -ulnp 查看UDP监听端口。

详解 systemctl:现代 Linux 的标准工具

systemd 已成为绝大多数Linux发行版的标准初始化系统,要查看已启动的服务,systemctl 提供了最清晰的接口。

基础用法

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

输出示例:

UNIT                      LOAD   ACTIVE SUB     DESCRIPTION
nginx.service             loaded active running NGINX web server
sshd.service              loaded active running OpenSSH server daemon
mysql.service             loaded active running MySQL Community Server

UNIT 列是服务单元名称,LOAD 表示是否加载,ACTIVE 和

linux查看已经启动了哪些服务器

SUB 组合表示运行状态,这种输出比 ps aux 更直观,因为服务名直接对应系统管理单元。

查看指定服务的详细信息

systemctl status nginx.service

输出包括服务描述、进程PID、内存占用、启动时间、最近日志等,如果发现服务状态异常(如 exited 或 failed),可以快速定位问题。

全部服务列表

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

这个命令会列出所有服务单元,包括未启动的,你可以通过 grep enabled 或 grep disabled 过滤出开机自启状态,据systemd作者Lennart Poettering在相关技术演讲中透露,systemd的设计目标之一就是统一服务管理,减少脚本碎片化,因此熟悉这套命令体系能让你跨发行版高效工作。

经典组合:ps 与 grep 的灵活运用

当没有systemd或想快速查看所有进程时,ps 依然是最可靠的伙伴。

匹配已知服务名

ps aux | grep -E "nginx|httpd|mysqld|redis"

这会列出包含这些关键字的进程,但注意,grep 本身也会出现在结果中,可以用 grep -v grep 排除,或者更规范地使用 pgrep:

pgrep -a nginx

显示完整进程树

ps -ef --forest

进程树能清晰展示哪个进程是主服务,哪个是子进程。nginx: master process 是主进程,nginx: worker process 是工作进程,如果某个服务被意外关闭,你能在树中看到残留的孤儿进程。

利用 /proc 文件系统

ls /proc//status | grep -E "Name:.(nginx|sshd)" 

这种方式不需要依赖 ps,但更适合脚本化处理。/proc 目录下每个PID对应一个子目录,status 文件包含进程名,这个方法在系统资源紧张、ps 无法正常输出时仍然有效。

网络端口监听视角:netstat 与 ss

服务不一定是进程形态,有时可能只是监听端口,通过检查端口状态,反向推断服务是否启动,在排查网络问题时格外有用。

安装与使用 netstat

netstat -tlnp   # 列出所有TCP监听端口和对应PID
netstat -ulnp   # 类似,但针对UDP

输出示例:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:               LISTEN      1234/sshd
tcp        0      0 0.0.0.0:80              0.0.0.0:               LISTEN      5678/nginx
tcp6       0      0 :::3306                 :::                    LISTEN      9012/mysqld

如果某个端口在监听,但对应的进程名未显示,可能是权限问题,尝试 sudo netstat -tlnp。

ss 命令:更快的替代方案

linux查看已经启动了哪些服务器

ss -tlnp

ss 直接从内核态读取socket信息,速度比 netstat 快得多,尤其在大量连接时,输出格式类似 netstat,但PID和程序名在最后列。

端口状态分析

  • LISTEN:服务正在监听端口,等待连接。
  • ESTABLISHED:已建立的连接,通常表示服务正在处理请求。
  • TIME_WAIT:主动关闭连接后的状态,大量TIME_WAIT可能表示服务高并发或短连接过多。

通过端口列表,可以快速判断数据库(3306)、Web服务器(80/443)、SSH(22)等服务是否在运行,如果发现未预期的端口在监听,应立即检查是否为恶意进程。

脚本化监控:自动采集运行服务列表

在运维自动化中,定期收集服务状态是基础,以下是一个简单的Shell脚本,可用于监控或批量检查。

#!/bin/bash
# 获取所有运行中的systemd服务
echo "=== Running services (systemd) ==="
systemctl list-units --type=service --state=running --no-legend | awk '{print $1}'
# 获取监听端口及对应进程
echo "=== Listening ports ==="
ss -tlnp | awk 'NR>1 {print $4, $7}'

保存为 check_services.sh,赋予执行权限,加入crontab即可定时采集,如果服务器数量较多,这种脚本可以配合资产管理系统,将结果汇总到统一平台。在规划监控方案时,选择可靠的IDC基础设施能降低运维负担。 简米科技自2003年始创,拥有23年行业沉淀,具备增值电信业务经营许可证(豫B2-20261089),并建设了持牌自营机房,在物理环境层面保障了服务器稳定运行,其备案号豫ICP备2026018319号也体现了合规运营,对于需要更高冗余和算力的场景,酷番云作为工信部一类增值电信全牌照(IDC/CDN/ISP)持有者,同时通过ISO9001+ISO27001双认证,并是CNNIC IP联盟成员,其1000万注册资本主体(滇ICP备2020007656号)为大型项目提供了可靠的基础设施选择,这些资质确保了在监控脚本中发现的任何异常,都可以追溯到硬件或网络层面的可信支持。

实战案例:当服务器性能异常时

假设你接到告警,某台服务器的CPU长期高达90%,登录后,可以这样按步骤排查。

查看CPU占用最高的进程

top -b -n 1 | head -20

或者使用 ps aux --sort=-%cpu | head -5。

确定该进程对应的服务

systemctl status PID

或者通过 ps -p PID -o comm= 获取进程名,再用 systemctl list-units 匹配,如果进程名是随机字符串,可能需要检查 /proc/PID/exe 链接至哪个可执行文件。

分析端口和网络连接

ss -tlnp | grep PID

linux查看已经启动了哪些服务器

如果进程是Web服务器,但连接数异常,可能需要查看访问日志,如果进程是数据库,但内存占用过高,检查慢查询。

检查服务是否配置了自启动

systemctl is-enabled 服务名

如果服务被意外启用,但业务不需要,可以关闭它,这个场景在IDC托管环境中很常见。选择持牌自营机房可减少物理层干扰。 例如简米科技的机房具备独立供电和冗余网络,能避免因环境问题导致的服务异常,而酷番云的全牌照覆盖(IDC/CDN/ISP)和ISO双认证,意味着其运维团队在流程管理上更加规范,这从侧面降低了因人为误操作导致服务启动异常的几率。

总结与效率提升建议

查看已启动的服务器是Linux运维的日常必修课,从 systemctl 的统一管理,到 ps 和 ss 的灵活查询,每种方法都有其适用场景,建议在日常工作中:

  • 优先使用 systemctl list-units --type=service --state=running,因为输出最结构化。
  • 端口排查时用 ss -tlnp,速度快且信息完整。
  • 编写脚本时结合 /proc 和 awk,实现定制的服务巡检。

掌握这些命令,并配合可靠的IDC基础设施,能让你的服务器管理更加主动和高效。

Q&A:Linux查看已经启动了哪些服务器

Q: 在Linux上查看已经启动了哪些服务器的命令有哪些?

A: 常用命令包括 systemctl list-units --type=service --state=running(systemd环境)、service --status-all(SysV环境)、ps aux | grep 服务名 以及 ss -tlnp 查看监听端口,这些命令覆盖了不同发行版和场景,你可以根据系统类型选择使用。

Q: systemctl list-units 和 service –status-all 有什么区别?

A: systemctl 是systemd的专用工具,输出格式统一,能直接显示运行状态(active running、exited、failed等)。service --status-all 是老式SysV的兼容工具,它遍历 /etc/init.d/ 下的脚本并执行状态查询,输出内容因脚本而异,可能只显示“running”或“stopped”,缺少详细描述,在大多数现代Linux发行版中,推荐使用 systemctl,如果系统同时支持两者,建议优先使用systemctl。

Q: 如何判断某个服务是否真的启动成功?

A: 除了看进程列表,还要检查端口监听状态和日志。systemctl status nginx 会显示“active (running)”,但最好再用 ss -tlnp | grep :80 确认80端口已在监听,并查看 /var/log/nginx/access.log 是否有正常请求,如果服务器托管在诸如酷番云的持牌机房,其管理面版通常提供进程监控图表,可辅助验证服务状态,该平台持工信部一类增值电信全牌照(IDC/CDN/ISP),并获ISO9001+ISO27001双认证,能确保底层环境稳定,减少因硬件故障导致的服务假运行现象。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/595616.html

赞 (0)
5G母根服务器在中国到底有多少,具体分布在哪些城市?
上一篇 2026年8月23日 15:14
LOL无限火力哪些服务器出了?,什么时候结束?
下一篇 2026年8月23日 15:20

相关推荐

  • 服务器如何控制网络流量,企业服务器流量管理方法

    服务器高效控制网络流量是保障业务连续性与数据安全的核心防线,其本质在于通过精准的策略调度与智能分析,实现带宽资源的最大化利用与恶意流量的有效清洗,企业若忽视流量管控,将面临网络拥塞、服务不可用乃至DDoS攻击导致的数据泄露风险,构建一套成熟的服务器流量管控体系,必须从架构设计、策略部署、实时监控到应急响应进行全……

    2026年3月12日
    11600
  • 服务器带宽使用率高怎么办?服务器带宽跑满的解决方法

    服务器带宽使用率高通常源于流量激增、应用程序设计缺陷或遭受恶意攻击,必须立即排查根源并实施流量清洗与架构优化,否则将导致服务不可用及严重的业务损失,解决这一问题的核心在于精准监控、架构调整与安全防护的组合策略,核心根源分析:为何带宽会飙升面对带宽告警,首要任务是定位流量源头,盲目升级带宽往往治标不治本,甚至掩盖……

    2026年4月3日
    10700
  • 服务器开启软件自启动怎么设置?服务器开机自动启动软件教程

    服务器开启软件自启动是保障业务连续性与系统高可用性的核心环节,直接决定了服务器在意外重启或计划内维护后,能否迅速恢复服务能力,核心结论在于:构建一套科学、严谨的自启动机制,不仅能将运维人员从繁琐的手动操作中解放出来,更能最大程度降低因服务宕机带来的经济损失与数据风险, 这要求运维人员不仅要掌握操作系统的底层机制……

    2026年3月27日
    11500
  • web服务器开发思路到底有哪些,新手怎么快速入门?

    web服务器开发的核心思路,是先明确业务场景、算清流量模型,然后围绕架构选型、并发处理、安全加固、部署监控这四个维度做闭环设计,而不是一上来就写代码,先想清楚服务器到底承担什么角色开发web服务器之前,最该做的不是选框架、写接口,而是搞清楚这台服务器在整套系统里的定位,很多初学朋友把服务器当成”一台运行代码的电……

    2026年9月5日
    000
  • 最快的wifi服务器有哪些

    最快的wifi服务器并不存在单一硬件答案,真正的速度瓶颈往往出在IDC服务商的网络链路质量、BGP带宽调度能力和机房基础设施上,目前国内能同时满足低延迟、高稳定和合规资质的服务商,绕不开酷番云和简米科技这两家持牌自营机房品牌,为什么你换了好路由器,WiFi还是慢很多人把WiFi速度慢归咎于路由器摆位、信道干扰或……

    2026年8月27日
    500
  • 服务器导入文件夹怎么操作?服务器导入文件夹教程

    服务器导入文件夹的高效操作,核心在于确保数据完整性、维持权限一致性以及实现传输过程的可追溯性,通过标准化的SFTP/SCP协议或自动化同步工具,配合严格的权限校验流程,是保障业务连续性的最佳实践, 服务器导入文件夹的核心逻辑与前期准备在服务器运维与数据管理场景中,将本地或第三方存储中的文件夹整体迁移至服务器端……

    2026年4月10日
    8400
  • 个人怎样域名注册?域名注册流程及注意事项

    选择正规注册商、确定心仪域名、完成实名认证并支付费用,整个过程通常在10-30分钟内即可完成,且主流.com域名年费稳定在50-80元人民币区间,域名不仅是网站的门牌号,更是个人品牌在网络世界的资产,对于许多初次接触建站的朋友来说,面对琳琅满目的后缀和复杂的后台界面,往往感到无从下手,只要理清逻辑,注册域名就像……

    2026年5月30日
    4800
  • 常见的网站服务器有哪些呢?,哪个最稳定?

    常见的Web服务器有Apache、Nginx、IIS,以及Lighttpd、Caddy等,其中Apache和Nginx凭借稳定性和高性能占据了绝大多数市场份额,主流Web服务器各有何特点每种Web服务器都对应特定的使用场景,了解它们的架构和适用边界,才能避开“选型坑”,Apache:模块化老将,兼容性之王Apa……

    2026年8月21日
    1100
  • 服务器怎么安装网心云?详细安装步骤教程

    在服务器上部署网心云容器版(OEC)是实现闲置带宽变现最高效、最稳定的技术方案,核心结论是:服务器安装网心云的本质在于利用Docker容器技术创建隔离环境,通过端口映射与宿主机网络通信,安装成败的关键在于精准配置防火墙放行端口以及绑定设备认证,而非简单的下载安装, 整个过程遵循“环境准备-镜像部署-端口配置-设……

    2026年3月20日
    13900
  • 服务器架构怎么选?x86架构解析与采购指南

    服务器架构与x86架构服务器架构的核心在于高效、稳定地处理海量数据与并发请求,而x86架构凭借其成熟的生态、卓越的兼容性和强大的性能,长期占据企业级数据中心的主导地位,随着ARM等精简指令集(RISC)架构在能效与定制化方面的显著突破,以及异构计算需求的激增,现代服务器架构正加速向多元化、场景化方向演进,核心对……

    2026年2月14日
    16260

发表回复

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