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可以是左边的数组,或者对应的右边的字符串:

    数字 策略 调度类
    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
  • 按线程组的方式显示
    ps -g

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

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

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