Linux如何查服务状态

使用 systemctl status 服务名 查看 Systemd 服务的运行状态。 ,对于 SysVinit 系统,可用 service 服务名 status。 ,通用方法:ps aux | grep 服务名 查找相关进程及其 PID。

使用 ps 命令(基础查看)

ps(Process Status)是最直接的进程查看工具,通过过滤特定关键词定位服务:

Linux如何查服务状态

ps aux | grep <服务名>
  • 参数解释
    • a:显示所有用户进程
    • u:显示进程的详细用户/资源占用
    • x:包括未关联终端的进程(如后台服务)
  • 示例(查看Nginx服务):
    ps aux | grep nginx

    输出解读

    root      1234  0.0  0.1  12345  6789 ?        S    Jan01   0:00 nginx: master process
    www-data  5678  0.0  0.2  23456  9876 ?        S    Jan01   0:05 nginx: worker process

    第一列为启动用户,第二列为进程ID(PID),最后一列为进程名称。


使用 systemctl 命令(Systemd系统专用)

现代Linux发行版(如Ubuntu 16.04+、CentOS 7+)默认使用systemd管理服务:

systemctl status <服务名>.service  # 查看状态及关联进程
systemctl list-units --type=service  # 列出所有服务
  • 示例
    systemctl status sshd.service

    输出关键信息

    Linux如何查服务状态

    Active: active (running) since Tue 2025-01-01 00:00:00 UTC; 1 months 0 days ago
    Main PID: 1234 (sshd)
        Tasks: 1 (limit: 4915)

    直接显示进程状态、PID及日志片段。


使用 service 命令(SysVinit系统兼容)

旧版系统(如CentOS 6)或兼容脚本使用service

service <服务名> status
  • 示例
    service httpd status

    输出httpd (pid 1234) is running...


使用 tophtop(实时动态监控)

  1. top:实时显示进程资源占用(CPU、内存等)
    top -c  # 显示完整命令
    按 Shift + P 按CPU排序 | Shift + M 按内存排序
  2. htop(需安装):增强版交互式工具
    sudo apt install htop  # Debian/Ubuntu
    sudo yum install htop  # CentOS/RHEL
    htop

    支持鼠标点击排序、树状展开进程层级。

    Linux如何查服务状态


通过端口反查服务进程

若知道服务端口,可用网络工具定位进程:

  1. netstatss
    sudo netstat -tulnp | grep :80  # 查看80端口进程
    sudo ss -tulnp | grep :22       # 更高效的替代命令
    • -p:显示进程名和PID
    • -l:仅监听中的端口
  2. lsof
    sudo lsof -i :3306  # 查看MySQL默认端口

使用 pgrep 快速获取进程ID

通过进程名直接查询PID:

pgrep -l nginx  # 输出示例:1234 nginx
  • -l:同时显示进程名称
  • -x:精确匹配进程名

⚠️ 注意事项

  1. 权限问题:查看非当前用户的进程需sudo提权。
  2. 进程名匹配grep可能包含自身命令(如grep nginx),用grep -v grep过滤:
    ps aux | grep nginx | grep -v grep
  3. 服务类型区分
    • systemd系统优先用systemctl(服务名如nginx.service
    • 传统系统用service/etc/init.d/<服务名> status
  4. 谨慎操作:避免随意终止进程(kill),可能影响服务可用性。

💎 总结建议

场景 推荐命令
快速检查服务状态 systemctl statusservice
查看进程资源占用 tophtop
根据端口定位服务 ss -tulnplsof -i
批量管理/精确查询 pgreppkill

引用说明

  • Linux man 手册(命令行输入 man psman systemctl 查看官方文档)
  • IBM Developer: Linux 进程管理指南
  • The Linux Documentation Project (TLDP)
  • Systemd 官方文档:https://www.freedesktop.org/wiki/Software/systemd/

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/36256.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月23日 07:55
下一篇 2025年6月23日 08:07

相关推荐

  • Linux内核函数查看方法

    查看Linux内核函数主要有三种方式:,1. 直接阅读内核源码(通常位于/usr/src/linux或Git仓库),2. 使用ftrace、perf或bpftrace等动态追踪工具实时观察函数调用,3. 通过/proc/kallsyms文件查询内核函数地址及符号信息。

    2025年6月1日
    200
  • Linux内存查看方法

    Linux查看内存使用常用命令:free -h显示总量、已用和空闲内存;top或htop实时监控进程内存占用;vmstat分析内存趋势,/proc/meminfo文件提供详细数据。

    2025年6月15日
    100
  • Linux磁盘空间怎么查看

    使用df -h命令查看所有磁盘分区的剩余空间,du -sh [目录名]可查看指定目录占用的磁盘空间大小,lsblk命令能显示磁盘分区树状结构。

    2025年6月7日
    000
  • 如何搭建Linux RAID5阵列?

    使用mdadm工具将至少3块磁盘组合为RAID5阵列,实现分布式奇偶校验和单盘容错,步骤:安装mdadm,分区并标记为Linux RAID类型,执行mdadm –create命令建立阵列,格式化文件系统(如ext4),最后挂载使用即可。

    2025年6月18日
    100
  • Linux如何查端口占用情况?

    在Linux中查看端口占用情况,常用命令:,1. netstat -tuln | grep ,2. lsof -i : ,3. ss -tuln | grep ,若返回结果则被占用,无输出表示空闲。

    2025年6月7日
    100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN