在Linux服务器中,查看运行的服务有多种方法,具体取决于系统使用的初始化系统(如 systemd、SysVinit 或 Upstart)以及所需的详细信息。以下是常见方法的汇总:
![图片[1]_在Linux服务器中查看运行的服务的方法汇总_知途无界](https://zhituwujie.com/wp-content/uploads/2025/04/d2b5ca33bd20250418100826.png)
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. 使用 netstat 或 ss 查看网络服务
检查监听端口的服务:
# 查看所有监听端口的服务(需root权限)
sudo netstat -tulnp
# 更现代的替代命令(推荐)
sudo ss -tulnp
# 过滤特定端口(如80)
sudo ss -tulnp | grep ':80'
5. 使用 top 或 htop 动态查看
实时监控资源占用高的服务:
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
总结表格
| 方法 | 命令示例 | 适用场景 |
|---|---|---|
systemctl | systemctl list-units --type=service | systemd系统(主流推荐) |
service | service --status-all | SysVinit旧系统 |
ps/grep | ps aux | grep nginx | 精确匹配进程 |
ss/netstat | ss -tulnp | 查看网络服务监听端口 |
top/htop | htop | 实时监控资源占用 |
注意事项
- 需要
root权限查看所有服务(部分命令需加sudo)。 - 如果服务未运行但已启用,可能需检查是否开机自启(
systemctl is-enabled servicename)。 - 容器化环境(如Docker)的服务需通过
docker ps单独查看。
根据系统版本和需求选择合适的方法即可。
© 版权声明
文中内容均来源于公开资料,受限于信息的时效性和复杂性,可能存在误差或遗漏。我们已尽力确保内容的准确性,但对于因信息变更或错误导致的任何后果,本站不承担任何责任。如需引用本文内容,请注明出处并尊重原作者的版权。
THE END

























暂无评论内容