Linux进程管理
一、基础进程查看命令
1. ps
命令(Process Status)
常用组合
ps aux
ps -ef
ps -l
ps -eF
ps -eLf
参数说明
参数 描述 -a
显示所有终端的进程 -u
显示用户相关信息(用户名、CPU时间等) -x
显示无控制终端的进程 -f
显示完整格式(含父子关系) -L
显示线程信息(需配合-e
使用)
输出字段解析
字段 说明 USER
进程所有者用户名 PID
进程ID %CPU
CPU占用百分比 %MEM
内存占用百分比 VSZ
虚拟内存大小(KB) RSS
常驻内存大小(KB) TTY
控制终端 STAT
进程状态(R/S/Z等) START
进程启动时间 TIME
累计CPU时间 COMMAND
启动命令
2. top
命令(动态监控)
交互命令
按键 功能 M
按内存占用排序 P
按CPU占用排序 T
按累计CPU时间排序 k
终止进程(输入PID) r
调整进程优先级 q
退出监控
显示区域说明
系统信息区 :负载平均值、运行时间、进程总数等进程列表区 :实时更新的进程信息(可自定义显示列)资源统计区 :内存/交换分区使用情况
3. htop
命令(增强版top)
核心特性
支持鼠标操作 可视化进程树结构 实时内存/CPU使用图表 过滤功能(F4
文本过滤,F5
树状过滤)
快捷键
按键 功能 F2
自定义显示选项 F3
搜索进程 F6
选择排序字段 F9
发送信号(如SIGKILL
) F10
退出
二、进程查找与终止
1. 进程查找
命令 示例 描述 pgrep
pgrep -u root
查找root用户的进程 pgrep -l
pgrep -l nginx
显示进程名和PID pgrep -x
pgrep -x firefox
精确匹配进程名 pgrep -P
pgrep -P 1234
查找父进程ID为1234的进程 pidof
pidof sshd
获取sshd进程ID
2. 进程终止
命令 示例 描述 kill
kill -9 1234
强制终止进程(PID=1234) pkill
pkill -f "java -jar"
按命令行内容终止进程 pkill -u
pkill -u $USER
终止当前用户的所有进程 killall
killall -u mysql
终止mysql用户的所有进程 killall -r
killall -r "apache.*"
正则匹配终止进程
三、作业控制
1. 作业管理命令
jobs
bg %1
fg %1
作业状态说明
符号 状态 +
当前作业 -
最近作业 Running
运行中 Stopped
暂停(可恢复) Done
完成(但未删除)
四、进程优先级管理
1. 优先级调整
命令 示例 描述 nice
nice -n 10 ./script.sh
以优先级10启动进程(默认0) renice
renice -5 1234
将进程1234优先级提高5级
优先级范围
-20
(最高优先级)到19
(最低优先级)只有root用户可设置负优先级
五、内存与系统状态监控
1. 内存分析
free -h
free -m
free -s 5
2. 虚拟内存统计
vmstat 2 5
3. 综合监控工具
dstat -cdngy
六、其他核心命令
命令 功能 uptime
显示系统运行时间和负载(1/5/15分钟平均) w
显示当前登录用户及进程信息 who
显示当前登录用户详细信息 last
查看历史登录记录(含时间/IP) lastb
查看失败登录尝试记录
七、进程状态解析
状态 说明 D
不可中断睡眠(通常为IO等待) R
运行中或就绪状态 S
可中断睡眠(等待事件完成) T
暂停或被跟踪(如Ctrl+Z
) Z
僵尸进程(需终止父进程) N
低优先级进程
八、高级技巧
查看线程 :
ps -eLf | grep java
实时监控指定进程 :
watch -n 1 "ps -eo pid,user,%mem,%cpu,command | grep firefox"
按内存排序进程 :
ps aux --sort -%mem
监控进程树 :
htop -p $( pgrep nginx)
九、常见问题处理
问题 解决方案 僵尸进程 终止父进程(kill <父PID>
)或重启服务 高CPU占用 使用top
定位进程→分析代码/日志 内存泄漏 结合free
/vmstat
/dstat
诊断 进程无响应 先尝试kill -15
,无效再用kill -9
十、性能优化建议
僵尸进程清理 :定期检查并终止僵尸进程的父进程资源限制 :使用nice
/renice
控制高负载进程优先级OOM Killer :调整/proc/sys/vm/panic_on_oom
参数避免系统崩溃资源隔离 :利用cgroups限制特定进程的CPU/内存使用服务监控 :使用systemd
或supervisor
管理关键服务进程
注 :所有命令可通过 man [命令]
或 info [命令]
查看完整文档。