Linux开发调试必知的ps选项搭配

93 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情

【摘要】本文介绍了在Linux应用/内核开发调试中,经常需要用到的两个选项组合,当然,如果你需要查看更多更详尽的选项说明,可以参考man说明文档,即命令行下输入man ps进行查看。

aux选项组合

使用场景:更多的是关注进程本身运行情况。

ps aux | more

  • a:显示一个终端的所有进程;
  • u:显示进程的归属用户及内存使用情况;
  • x:显示没有关联控制终端的进程。

image-20220407224822062

  • USER:进程的归属用户
  • PID:进程id
  • %CPU:进程占用CPU资源的百分比
  • %MEM:进程占用内存资源的百分比
  • VSZ:进程使用的虚拟内存大小
  • RSS:进程使用的物理内存大小
  • TTY:当前进程关联的终端
  • STAT:当前进程的状态
    • D:disinterruptible,不可被打断的睡眠状态(IO)
    • R:running,进程正在运行或就绪
    • S:sleep,可被打断的睡眠状态(IO)
    • T:terminal,停止状态(位于后台暂停或处于除错状态)
    • X:死掉的状态
    • Z:zombie,僵尸状态(虽已退出,但未被父进程回收)
    • N:低优先级
    • s:进程是会话首进程
    • l:多线程
    • +:进程位于后台
  • START:进程启动时间
  • TIME:进程运行时间
  • COMMAD:当前进程的所执行的程序名

axjf组合

使用场景:更多关注的是多个进程间的层次关系

ps axjf | more

  • j:显示进程归属的组gid、会话sid、父进程id

  • f:以ASCII码的形式显示出进程的层次关系。

    image-20220407230108313

    • PPID:当前进程的父进程id

    • PID:当前进程id

    • PGID:当前进程所属进程组id

    • SID:当前进程所属会话id

    • TTY:当前进程关联的终端

    • TPGID:当前进程是否为守护进程(-1代表真)

    • STAT:当前进程的状态

    • UID:当前进程由哪个用户启动的

    • TIME:进程运行时间

    • COMMAND:以ASCII码的形式展示进程间的调用关系

      image-20220407230700644