我们在运维Linux服务器的时候,需要用到查看进程的id,看看是否是正常的。在这里,我们可以用到这10个查看进程Id的命令。
1、ps 命令(查看当前进程快照)
功能:显示当前运行的进程信息(静态快照)。
选项 | 说明 |
---|---|
ps aux |
显示所有用户的所有进程(详细格式) |
ps -ef |
显示所有进程(标准格式) |
ps -u username |
查看指定用户的进程 |
ps -p PID |
查看指定进程 ID 的信息 |
示范:
ps aux | grep nginx # 查看所有包含 "nginx" 的进程
ps -ef | grep python # 查找 Python 相关进程
输出字段说明(ps aux):
USER:进程所有者
PID:进程 ID
%CPU / %MEM:CPU 和内存占用
VSZ / RSS:虚拟内存和物理内存占用(KB)
TTY:进程运行的终端
STAT:进程状态(如 S=休眠,R=运行)
START:进程启动时间
TIME:进程占用 CPU 时间
COMMAND:启动命令
2、top 命令(动态查看进程)
功能:实时动态显示进程状态(按 q 退出)。
交互命令:
P:按 CPU 使用率排序
M:按内存使用率排序
k:终止指定 PID 的进程
Shift + > / Shift + <:左右切换排序列
示范:
top -u mysql # 只查看 MySQL 相关进程
top -p 1234,5678 # 查看指定 PID 的进程
输入字段说明:
PID、USER、PR(优先级)、NI(nice 值)
%CPU、%MEM、VIRT、RES(内存占用)
COMMAND:进程命令
3、htop 命令(增强版 top)
功能:交互式进程查看工具(需安装:sudo apt install htop 或 sudo yum install htop)
操作:
F6:选择排序方式
F9:终止进程
F5:切换树状视图
4、pstree 命令(进程树视图)
选项:
选项 | 说明 |
---|---|
pstree -p |
显示 PID |
pstree -u |
显示用户名 |
pstree -a |
显示完整命令 |
示范:
pstree -p | grep nginx # 查看 Nginx 进程及其子进程
5、pgrep 和 pidof(快速查找 PID)
命令 | 功能 | 示例 |
---|---|---|
pgrep nginx |
查找 Nginx 进程的 PID | pgrep -u root nginx (仅 root 用户的 Nginx) |
pidof nginx |
直接返回 Nginx 的 PID | pidof python |
6、netstat / ss(查看网络相关进程)
功能:查看占用端口的进程(需 root 权限)。
示范:
sudo netstat -tulnp | grep 80 # 查看 80 端口的进程
sudo ss -tulnp | grep mysql # 更现代的替代命令
字段含义:
-t:TCP 端口
-u:UDP 端口
-l:监听状态
-n:显示数字端口(不解析服务名)
-p:显示进程信息
7、lsof(查看进程打开的文件/端口)
功能:列出进程打开的文件、网络连接等。
示范:
lsof -i :80 # 查看占用 80 端口的进程
lsof -p 1234 # 查看 PID=1234 的进程打开的所有文件
lsof -u root # 查看 root 用户的所有打开文件
8、kill 和 killall(终止进程)
命令 | 功能 | 示例 |
---|---|---|
kill PID |
终止指定 PID 的进程 | kill -9 1234 (强制终止) |
killall nginx |
终止所有名为 "nginx" 的进程 | killall -9 python |
9、systemctl(查看系统服务进程)
功能:管理 systemd 管理的服务(适用于现代 Linux 发行版)。
systemctl status nginx # 查看 Nginx 服务状态
systemctl list-units --type=service # 列出所有服务
10、vmstat 和 pidstat(进程资源监控)
命令 | 功能 | 示例 |
---|---|---|
vmstat 1 |
查看系统整体资源使用情况(CPU、内存等) | 每秒刷新一次 |
pidstat -p 1234 |
监控指定 PID 的 CPU、内存、IO 等 | pidstat -u -p 1234 1 (每秒刷新) |