ps 命令用来查看 进程信息
ps -- help all
man ps
cheat ps
基础选项
- A - a a - d x
过滤
- C < command> command name
- p, p, -- pid < PID> process id
- U, -- User < UID> real user id or name
输出格式
u user- oriented format
线程相关
H as if they were processes
其他杂项
e show the environment after command
c show true command name
ps 输出的一个进程或者线程为一行, 每一行包括几列( 多少列, 具体什么列根据ps添加的什么选项决定)
那么列名称就很必要了
添加什么选项出来什么列名称也很重要.
用户相关
USER 该进程的所有者
UID 该进程所有者的userid
进程id相关
PID 该进程的id
PPID 该进程的父进程id
内存相关
% MEM
该进程占用的物理内存百分比
VSZ
该进程使用掉的虚拟内存量( Kbytes)
RSS
该进程占用的固定的内存量( Kbytes)
ADDR
程序在内存的哪个部分, 如果为running状态, 则为-
SZ
程序用掉的内存
映射到内存中物理页面的大小, 包括文本,数据和堆栈空间。这些页面仅由进程单独使用. 进程实际占用的内存数。
控制台相关
TTY
显示? 表示与终端机无关, tty1- tty6 表示在物理本机登陆的程序, 若为 pts/ 0 则为网络登陆进主机后的程序
进程状态相关
STAT或者S
R: 目前正在运行, 或者可以运行
S: 睡眠, 可被信号唤醒
D: 睡眠, 不可被信号唤醒, 一般在等待IO
T: 停止
Z: 僵尸, 等待被系统移除task_struct
Ss+
Ss
S+
R+
S<
s:session leader,会话层状态。代表的父进程
N:低优先级进程
< :高优先级进程
+ :前台进程。在前台进程组中
l:多线程进程
WCHAN
若为- , 表示程序在运行中
sigsus
STIME或START
process 被启动的时刻
COMMAND
执行该程序的实际指令, 被 [ ] 包裹的为内核线程
PRI
运行优先级
NI
运行优先级调整值
CPU 相关
TIME
实际使用的cpu总时间
C或者% CPU
占用的cpu资源百分比
PSR
当前分配给该进程的处理器,即进程在哪颗CPU上运行。
权限相关
F
权限标识, 0 普通权限, 4 root权限, 1 仅执行fork没执行exec
线程相关
LWP
轻量级进程(线程)的ID号
NLWP
进程中内核的lwps(线程)数。 NLWP,就是线程组中LWP的个数