ps(process status)命令是Linux/Unix系统中用于查看当前运行进程信息的基本工具。它可以显示进程ID(PID)、运行状态、CPU和内存使用情况等详细信息。
ps [options]
查看当前终端下的进程:
ps
查看系统所有进程:
ps -e
ps -A # 等同于-e
显示完整格式的进程信息:
ps -ef
显示BSD风格的进程信息:
ps aux
PID:进程IDTTY:控制终端TIME:CPU使用时间CMD:执行的命令UID:用户IDPPID:父进程IDC:CPU利用率STIME:启动时间CMD:完整命令行USER:进程所有者%CPU:CPU使用百分比%MEM:内存使用百分比VSZ:虚拟内存大小(KB)RSS:常驻内存大小(KB)STAT:进程状态START:启动时间COMMAND:命令名/命令行| 代码 | 含义 |
|---|---|
| R | 运行中或可运行(在运行队列中) |
| S | 可中断的睡眠(等待事件完成) |
| D | 不可中断的睡眠(通常与IO相关) |
| Z | 僵尸进程(已终止但未被父进程回收) |
| T | 已停止(通常由作业控制信号或进程被跟踪) |
| < | 高优先级 |
| N | 低优先级 |
| L | 有页面锁定在内存中 |
| s | 会话首进程 |
| l | 多线程 |
| + | 位于前台进程组 |
ps -ef | grep nginx
ps -ejH
ps axjf # 显示进程树
ps aux --sort=-%cpu | head -10 # CPU使用率最高的10个进程
ps aux --sort=-%mem | head -10 # 内存使用率最高的10个进程
ps -u username
ps -eLf
ps -T -p <PID> # 查看特定进程的线程
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
ps -eo pid,user,args --forest
ps e -p <PID>
watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
kill $(ps -ef | grep 'process_name' | grep -v grep | awk '{print $2}')
先用ps找到可疑进程,再用top/htop进行详细监控。
通过熟练掌握ps命令,您可以有效地监控和管理Linux系统中的进程,快速定位性能问题和异常进程。