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 -tlnpss -tlnp 列出所有TCP监听端口及对应的进程PID。
    • netstat -ulnpss -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、内存占用、启动时间、最近日志等,如果发现服务状态异常(如 exitedfailed),可以快速定位问题。

全部服务列表

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

这个命令会列出所有服务单元,包括未启动的,你可以通过 grep enabledgrep 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 的统一管理,到 psss 的灵活查询,每种方法都有其适用场景,建议在日常工作中:

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

掌握这些命令,并配合可靠的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

相关推荐

  • 服务器必须挂载在云盘吗?云服务器数据盘一定要挂载吗

    服务器并非必须挂载在云盘,这取决于具体的业务场景、数据安全要求以及成本预算,对于绝大多数生产环境而言,云盘是保障数据持久性和高性能的首选,但对于临时计算、无状态服务或极致成本控制场景,本地盘甚至无额外挂载方案同样具备应用价值,核心决策依据在于对数据可靠性、I/O性能及运维成本的综合权衡,核心结论:数据持久化需求……

    2026年3月25日
    9300
  • Python CSC是什么?python csc函数用法详解

    Python CSC(Computer Science)并非单一软件,而是指代计算机科学领域的Python应用体系,掌握其核心库与算法逻辑是2026年进入高薪技术岗位的必经之路,很多人听到Python CSC,第一反应是某个特定的考试代码或者某个小众的插件,其实不然,在当前的互联网技术语境下,它更多指向的是以P……

    2026年7月8日
    18400
  • 高级java怎么学?高级java薪资待遇多少

    2026年高级Java工程师的核心竞争力已从单一框架应用跃迁至云原生架构治理、AI工程化融合与全链路调优,唯有掌握JVM底层、分布式高可用设计与AIGC集成实战,方能突破职业瓶颈斩获高薪,2026高级Java技术架构演进与核心壁垒云原生时代的Java重塑传统单体与微服务架构正全面向云原生演进,根据CNCF 20……

    2026年4月28日
    5500
  • 个人icp备案怎么办理?个人网站icp备案流程及费用

    个人ICP备案必须通过接入商(如阿里云、腾讯云等)提交,管局审核周期通常为1-20个工作日,审核通过后网站方可正式开放访问,很多人以为备案是去工信部网站直接填表,其实这是一个常见的误区,工信部并不直接受理个人的备案申请,而是将权限下放给了各大云服务商,这意味着,你首先需要拥有一台在国内大陆服务器上的业务,或者至……

    2026年6月19日
    2810
  • 高精度人脸识别闸机报价多少?人脸识别闸机价格多少钱一台

    2026年高精度人脸识别闸机报价通常在1.8万至5.5万元/台之间,最终成交价取决于活体防伪算法等级、通行吞吐量及项目定制化深度,2026年高精度人脸识别闸机报价体系拆解硬件组件成本分布高精度闸机并非单一设备,而是光学、机械与算力的集成体,核心成本占比依次为:宽动态双目/3D结构光摄像头模组:占比约35%,决定……

    2026年4月28日
    4800
  • 股票数据集成怎么做?股票数据集成平台有哪些

    股票数据集成并非简单的文件合并,而是通过API接口、数据库同步及ETL工具,将分散的多源金融数据清洗、标准化并统一存储,从而为量化交易、风控分析和投资决策提供实时、准确且结构化的底层支撑,在数字化转型的深水区,金融机构和独立交易者面临的痛点已从“获取数据”转向“治理数据”,过去,分析师需要手动从Wind、Blo……

    2026年7月8日
    2900
  • 服务器密码授权时长怎么设置?服务器密码授权有效期控制工具

    服务器密码授权时长控制管理工具是保障企业IT资产安全、满足合规要求、防范越权访问的核心手段,它通过动态设定密码有效周期、自动回收权限、审计操作留痕三大机制,将传统“永久授权”转变为“按需授权、到期失效”的精细化管理模式,显著降低因密码泄露、人员离职或权限滥用导致的安全风险,为何必须实施密码授权时长控制?传统密码……

    2026年4月15日
    7600
  • 服务器控件开发怎么做,服务器控件开发教程详解

    服务器控件开发的核心价值在于封装复杂逻辑、提升代码复用率并显著降低维护成本,这是构建高性能、可扩展企业级Web应用的关键技术路径,通过将用户界面元素与后端处理逻辑高度集成,开发者能够实现“一次开发,多处使用”的高效模式,彻底改变传统Web开发中代码冗余、维护困难的局面,服务器控件开发的本质与核心优势服务器控件并……

    2026年3月12日
    10500
  • 个人备案备注怎么写?个人网站备案注意事项

    个人备案是网站合法上线的必经门槛,核心在于通过工信部系统提交真实身份信息,通常耗时15-20个工作日,审核期间网站必须保持关闭状态,很多刚接触建站的朋友,拿到服务器后第一件事就是急着上传代码,结果发现访问全是“403禁止访问”或者“备案未通过”,这其实是因为忽略了最基础也最关键的环节——ICP备案,没有这个“身……

    服务器运维 2026年5月29日
    6200
  • 如何规避五大数据安全风险?企业数据安全防护有哪些措施

    规避五大数据安全风险的核心在于建立“预防-监控-响应”的闭环体系,重点落实数据分类分级、访问权限最小化、加密传输存储、定期备份演练及员工安全意识培训,在数字化浪潮席卷全球的今天,数据已取代土地和劳动力,成为企业最核心的资产,随着业务线上化的深入,数据泄露、勒索软件攻击、内部人员误操作等风险如影随形,许多企业往往……

    2026年7月5日
    15300

发表回复

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