在 Linux 系统中,可以通过多种方式查看服务进程的状态。以下是常用的方法和工具:
systemctl
命令(Systemd 系统)适用于大多数现代 Linux 发行版(如 Ubuntu 18.04+、CentOS 7+):
systemctl status <服务名> # 查看特定服务的状态(如 nginx、sshd)
systemctl is-active <服务名> # 仅检查服务是否运行
systemctl list-units --type=service # 列出所有系统服务
示例:
systemctl status nginx
输出会显示服务是否活跃(active (running)
)、日志片段以及进程 PID。
service
命令(旧版 SysV Init 系统)适用于传统 SysV 系统(如 CentOS 6):
service <服务名> status
示例:
service httpd status
ps
命令(查看进程详情)通过进程名或 PID 直接查看进程状态:
ps aux | grep <进程名> # 模糊匹配进程(如 nginx、mysql)
ps -p <PID> -o stat # 查看特定进程的状态(如 S=休眠, R=运行, Z=僵尸)
示例:
ps aux | grep sshd
top
/ htop
命令(实时进程监控)top
:动态显示所有进程的资源占用(按 q
退出)。htop
(需安装):增强版 top
,支持颜色和交互操作。top
htop
journalctl
查看服务日志针对 Systemd 管理的服务,查看详细日志:
journalctl -u <服务名> # 查看服务全部日志
journalctl -u nginx --since "2023-01-01" --until "2023-01-02"
netstat
/ ss
查看服务端口确认服务是否监听端口:
sudo netstat -tulnp | grep <端口或服务名>
# 或使用更快的 `ss`:
sudo ss -tulnp | grep ssh
kill -STOP
)bash
journalctl -xe
bash
systemctl list-dependencies <服务名>
bash
systemctl restart <服务名>
根据你的发行版和服务管理方式选择合适的方法。如果是容器化环境(如 Docker),则需使用 docker ps
或 kubectl get pods
等命令。