crash命令 —— ps
参考:
https://crash-utility.github.io/help_pages/ps.html
用法
-
显示所有进程的pid、task_struct、cpu以及运行状态等信息
ps
- MEM列:使用物理内存的百分比
- VSZ列:虚拟地址空间大小,单位KB
- RSS列:实际使用的物理内存大小,单位KB
- 在进程状态一列显示的标识跟进程状态的对应关系(task_state_string):
标识 状态 定义 RU TASK_RUNNING 0 IN TASK_INTERRUPTIBLE 1 UN TASK_UNINTERRUPTIBLE 2 ZO EXIT_ZOMBIE ST __TASK_STOPPED TR __TASK_TRACED DE EXIT_DEAD SW SWAPPING WA TASK_WAKING PA TASK_PARKED ID TASK_IDLE TASK_UNINTERRUPTIBLE | TASK_NOLOAD NE TASK_NEW
-
显示指定进程的信息
ps <进程pid>
or
ps <进程名字>
or
ps <进程task_struct地址>
-
只显示内核线程
ps -k
-
只显示用户进程
ps -u
-
只显示线程组组长
ps -G
-
显示指定调度策略的任务
ps -y <policy>
这里的policy
可以是左边的数组,或者对应的右边的字符串:数字 策略 调度类 0 NORMAL cfs 1 FIFO rt 2 RR rt 3 BATCH cfs 4 ISO 5 IDLE cfs 6 DEADLINE deadline -
显示每个进程的内核栈的地址
ps -s
-
显示进程之间的父子关系
ps -p
-
显示全部或者指定进程的子进程
ps -c
-
显示进程的运行时间、起始时间以及在用户态和内核态的时间
ps -t
-
显示进程上次运行的时间戳,有多个进程的话会从距离现在最近的时间戳开始进行排序
ps -l
- 如果想将时间戳按
天-时-分-秒-毫秒
的形式显示,可以使用ps -m
- 如果想显示在指定cpu上的时间戳,可以配合
-C
:ps -C 0,2,5-8 -l
- 如果想将时间戳按
-
按线程组的方式显示,如果知道了一个进程或者线程的pid,想知道所属的线程组还有哪些线程,可以使用这个命令
ps -g
-
显示进程的资源限制
ps -r
-
统计每种状态的进程的数量
ps -S
-
只显示当前正在cpu上运行的进程
ps -A
源码分析
版本:8.0.1
代码路径:task.c
本文来自博客园,作者:摩斯电码,未经同意,禁止转载