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上的时间戳,可以配合-Cps -C 0,2,5-8 -l
  • 按线程组的方式显示,如果知道了一个进程或者线程的pid,想知道所属的线程组还有哪些线程,可以使用这个命令
    ps -g

  • 显示进程的资源限制
    ps -r

  • 统计每种状态的进程的数量
    ps -S

  • 只显示当前正在cpu上运行的进程
    ps -A

源码分析

版本:8.0.1
代码路径:task.c

posted @ 2022-03-27 20:29  摩斯电码  阅读(613)  评论(0编辑  收藏  举报