在Linux服务器中查看运行的服务的方法汇总

在Linux服务器中,查看运行的服务有多种方法,具体取决于系统使用的初始化系统(如 systemdSysVinitUpstart)以及所需的详细信息。以下是常见方法的汇总:

图片[1]_在Linux服务器中查看运行的服务的方法汇总_知途无界

1. 使用 systemctl(systemd 系统)

大多数现代Linux发行版(如CentOS 7+/Ubuntu 16.04+)默认使用 systemd

# 查看所有已加载的服务(包括运行/停止/失败状态)
systemctl list-units --type=service

# 仅查看运行中的服务
systemctl list-units --type=service --state=running

# 查看某个服务的状态(如nginx)
systemctl status nginx

# 列出所有已安装的服务(包括未运行的)
systemctl list-unit-files --type=service

2. 使用 service 命令(兼容 SysVinit)

旧版系统(如CentOS 6或部分Ubuntu版本)可能使用 SysVinit

# 列出所有服务的状态(仅限SysVinit脚本)
service --status-all

# 检查单个服务状态(如httpd)
service httpd status

3. 使用 ps 命令查看进程

直接通过进程列表筛选服务:

# 查看所有运行中的进程
ps aux

# 结合grep过滤特定服务(如MySQL)
ps aux | grep mysql

# 查看进程树(显示父子关系)
pstree -p

4. 使用 netstatss 查看网络服务

检查监听端口的服务:

# 查看所有监听端口的服务(需root权限)
sudo netstat -tulnp

# 更现代的替代命令(推荐)
sudo ss -tulnp

# 过滤特定端口(如80)
sudo ss -tulnp | grep ':80'

5. 使用 tophtop 动态查看

实时监控资源占用高的服务:

top          # 基础版
htop         # 交互式(需安装)

6. 检查启动脚本(SysVinit 系统)

查看 /etc/init.d//etc/rc*.d/ 目录:

# 列出所有SysVinit服务脚本
ls /etc/init.d/

# 查看运行级别对应的服务
ls /etc/rc3.d/   # 例如运行级别3

7. 使用 chkconfig(RedHat系旧版本)

# 列出所有服务的启动状态
chkconfig --list

8. 检查日志

通过日志追踪服务活动:

# 使用journalctl(systemd系统)
journalctl -u nginx.service

# 查看系统日志
cat /var/log/messages

总结表格

方法命令示例适用场景
systemctlsystemctl list-units --type=servicesystemd系统(主流推荐)
serviceservice --status-allSysVinit旧系统
ps/grepps aux | grep nginx精确匹配进程
ss/netstatss -tulnp查看网络服务监听端口
top/htophtop实时监控资源占用

注意事项

  • 需要 root 权限查看所有服务(部分命令需加 sudo)。
  • 如果服务未运行但已启用,可能需检查是否开机自启(systemctl is-enabled servicename)。
  • 容器化环境(如Docker)的服务需通过 docker ps 单独查看。

根据系统版本和需求选择合适的方法即可。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞77 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容