ps aux
BSD操作系统格式,aux参数解释:
- a:显示现行终端机下的所有程序,包括其他用户的程序
- u:以用户为主的格式来显示程序状况
- x:显示所有程序,不以终端机来区分
congqingquan@localhost ~ % ps aux
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
congqingquan 546 133.8 0.8 4743640 138832 ?? R 13 422 1563:00.97 /System/Library/CoreServices/ReportCrash agent
congqingquan 47305 7.7 3.4 5987196 565660 ?? S 12 522 6:22.21 /Applications/iTerm.app/Contents/MacOS/iTerm2
输出字段解释:
- USER:进程的产生用户
- PID:进程的ID
- %CPU:占用CPU的百分比
- %MEN:占用实际物理内存的百分比
- VSZ:占用虚拟内存的大小(单位KB)
- RSS:占用实际物理内存的大小(单位KB)
- TTY:进程的运行终端。tty1-tty为本地终端。pts/0-255为虚拟终端,一般是远程连接的终端。?一般为系统调用。
- STAT:进程状态,常见的状态:
D:不可被唤醒的睡眠状态
R:该正常正在运行
S:该进程在睡眠状态,可被唤醒
T:停止状态,可能是在后台暂停或进程在除错状态
X:死掉的进程
Z:僵尸进程。进程已经终止,但是部分程序还在内存当中
<:高优先级
N:低优先级
L:被锁入内存
s:包含子进程
l:多线程(小写L)
+:位于后台
ps -ef
System V风格,-ef参数解释:
- -e:显示所有进程。
- -f:全格式
congqingquan@localhost Desktop % ps -ef
UID PID PPID C STIME TTY TIME CMD
0 1 0 0 13 422 ?? 63:15.40 /sbin/launchd
0 92 1 0 13 422 ?? 3:12.38 /usr/sbin/syslogd
输出字段解释:
- UID:进程的产生用户
- PID:进程的ID
- PPID:父进程的ID
- C:占用CPU的百分比
- STIME:进程的启动时间
- TTY:进程的运行终端
- TIME:进程占用CPU的运算时间
- CMD:进程的产生命令
常用参数(持续补充)
-o:指定输出字段
congqingquan@localhost Desktop % ps -ostat,ppid,pid,command -p 11837
STAT PPID PID COMMAND
SN 1443 11837 /usr/bin/java Test
--sort:指定排序字段(逆序直接在参数前加负号即可)
[root@VM-24-5-centos ~]# ps -e -o pid,tid,stat,%cpu,%mem,command --sort %cpu | head -4
PID TID STAT %CPU %MEM COMMAND
1 1 Ss 0.0 0.1 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
2 2 S 0.0 0.0 [kthreadd]
4 4 S< 0.0 0.0 [kworker/0:0H]
[root@VM-24-5-centos ~]# ps -e -o pid,tid,stat,%cpu,%mem,command --sort -%cpu | head -4
PID TID STAT %CPU %MEM COMMAND
6493 6493 Sl 0.7 2.0 /usr/local/qcloud/YunJing/YDEyes/YDService
3493 3493 Sl 0.4 0.7 barad_agent
24221 24221 Sl 0.1 0.3 /usr/local/qcloud/tat_agent/tat_agent
实际应用(持续补充)
1. 查看java进程: ps aux | grep java 或 ps -ef | grep java
2. 查看进程的信息,并根据指定字段排序
ps -e -o pid,tid,stat,%cpu,%mem,command --sort %cpu
ps -e -o pid,tid,stat,%cpu,%mem,command --sort -%cpu
(生序还是降序取决于--sort后的参数的正负号)
ps h -e -o pid,tid,stat,%cpu,%mem,command | sort -rnk 4
(因为是通过sort命令排序,ps结果中包含的列标题也会参与到排序中,通过参数h取消展示)
3. 根据PID查看具体进程的信息(主要查看cpu & 内存使用率 & 进程状态)
ps -o pid,tid,stat,%cpu,%mem,command -p {PID}
4. 查询进程与其线程信息,并根据指定字段排序
ps H -e -o pid,tid,stat,%cpu,%mem,command --sort %cpu | grep {PID}
相比第二条,多了参数H与grep {PID}。
H参数开启线程信息查看。通过grep PID的方式筛选进程的线程信息。