Linux ps命令

科牛

关注

阅读 35

2023-08-21

一、ps命令简介

ps命令全称为process status,它用于显示当前系统的进程状态。使用ps可以方便地查看进程的PID、内存占用、执行时间等信息,辅助我们对进程进行监控和管理。

二、ps命令的功能作用

1、查看进程执行状态

ps可以显示每个进程的详细状态,常见的有:

R - 运行(Running)

S - 中断(Sleeping)

D - 不可中断的睡眠(Uninterruptible Sleep)

T - 停止(Stopped)

Z - 僵死(Zombie)

查看进程状态可以判断进程是否正常工作或存在问题,是否被阻塞或结束运行。

2、查找特定进程

ps支持多种方式查找进程:

根据PID查找:ps -p 1234

根据进程名查找:ps -C nginx

根据端口号查找:ps -aef | grep 3306

根据内存使用查找:ps aux --sort -%mem | head

根据CPU使用查找:ps aux --sort -%cpu | head

根据用户名查找:ps -u frank

3、检测系统资源占用情况

ps可以显示每个进程对各种系统资源的占用情况,常见的有:

%CPU - CPU利用率

%MEM - 内存占用率

VSZ - 虚拟内存占用大小

RSS - 物理内存占用大小

COMMAND - 进程对应的程序名

这样可以直观地查看不同进程的资源占用,并分析出占用过高的进程。

4、分析进程关系

ps以树形结构显示进程之间的关系:

PPID - 父进程ID

PID - 进程本身ID

PGID - 进程组ID

SID - 会话ID

三、ps常用参数选项

-A/-e:显示所有进程

-a:显示同一终端下的所有程序

-u:以用户为主的格式显示进程状况

-x:显示无控制终端的进程

--sort:指定排序字段

-o:自定义输出格式

-h:不显示标题信息

-w:宽格式显示提供更多信息

四、ps命令基础案例

1、监控某个用户进程

ps -u root -u user1

2、查找特定进程

ps -C nginx

3、按内存使用排序

ps aux --sort -%mem

4、显示线程信息

ps -e -L -o pid,tid,pcpu,pmem

5、看进程树结构

ps -axjf

6、实时监控进程状态变化

watch -n 1 'ps -ef'

7、杀掉特定进程

kill $(ps aux | grep mysql | awk '{print $2}')

8、查找进程打开的端口

ps aux | grep nginx | grep tcp


五、实战案例

1、按内存利用率排序,找出前10大内存占用进程

ps aux --sort -%mem | tail -n 10


2、显示所有进程的线程信息

ps -e -o pid,tid,pcpu,pmem -


3、输出进程信息至日志文件

ps -ef > /var/log/ps.log


4、查看进程启动时间

ps -eo pid,lstart,cmd


5、树形显示父子进程关系

ps -axjf


6、监控某进程的线程数变化

watch "ps -L -p 1234 | wc -l"

7、查找进程的环境变量信息

ps -p 2135 -o pid,env

8、根据端口列出进程详细信息

ss -tulpn | grep :80 | awk '{print $5}' | xargs -I {} ps -p {} -o pid,ppid,cmd,user

9、批量跟踪进程系统调用

for pid in $(ps aux | awk '{print $2}' | grep nginx); do strace -p $pid -o /tmp/strace.$pid.log; done

10、统计各个状态的进程数

ps -A -o stat | sort | uniq -c

这些实例涵盖了ps各种实用的组合应用,既可以监控进程动态信息,也可以与其他命令配合强大的管理进程。

精彩评论(0)

0 0 举报