当前位置:首页 > 问答 > 正文

服务管理|系统监控|linux如何查看当前正在运行的服务列表

Linux系统管理员必看:2025年最新服务监控指南

(最新消息:根据2025年8月发布的《全球服务器运维趋势报告》,超过70%的企业仍依赖Linux原生命令进行基础服务管理,而快速定位运行中的服务已成为运维人员的高频需求场景。)

在日常服务器维护中,查看当前运行的服务是排查问题、优化性能的第一步,本文将用最直白的语言,手把手教你多种查看Linux运行服务的实用方法。


方法1:systemctl命令(推荐)

适用于大多数现代Linux发行版(如CentOS 7+、Ubuntu 16.04+):

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

效果说明

  • 列表显示所有正在运行的服务,包含服务名称、描述和状态。
  • 关键列:LOAD(是否加载)、ACTIVE(运行状态)、SUB(详细状态)。
    小技巧:用grep过滤关键服务,例如找Nginx:
    systemctl | grep nginx

方法2:service命令(传统系统兼容)

老版本系统(如CentOS 6)或需要快速操作的场景:

service --status-all | grep running

注意

服务管理|系统监控|linux如何查看当前正在运行的服务列表

  • 输出可能较简略,需结合进程名判断。
  • [+]标记的通常为活跃服务。

方法3:直接检查进程(万能方法)

任何Linux系统通用,直接抓取服务关联进程:

ps aux | grep -E 'nginx|mysql|httpd'  # 替换为你想查的服务名

适用场景

  • 不确定服务是否以守护进程运行时。
  • 查看服务占用的资源(CPU、内存)。

方法4:netstat/lsof(网络服务专用)

针对需要确认端口占用的服务(如Web、数据库):

sudo netstat -tulnp | grep LISTEN  
# 或使用更现代的ss命令:  
sudo ss -tulnp

输出关键字段

服务管理|系统监控|linux如何查看当前正在运行的服务列表

  • Local Address:服务监听地址(如0.0.0.0:80)。
  • PID/Program name:对应进程ID和服务名。

常见问题FAQ

  1. “为什么systemctl看不到某个服务?”

    • 可能是未注册为系统服务,尝试用ps/etc/init.d/目录手动检查。
  2. 如何区分系统服务与用户服务?

    • systemctl --user查看用户级服务,默认命令显示系统级。
  3. 服务显示“active (exited)”怎么办?

    表示服务已执行完成但未持续运行(如定时任务),属正常现象。

    服务管理|系统监控|linux如何查看当前正在运行的服务列表


:根据你的需求选择工具——

  • 快速概览:systemctl
  • 兼容老旧系统:service
  • 深挖资源占用:ps
  • 排查网络服务:ss/netstat

掌握这些命令,你就能像资深管理员一样高效掌控Linux服务状态!

(本文参考2025年8月Linux内核文档及主流发行版官方手册,适用于绝大多数生产环境。)

发表评论