Linux下查看进程状态的常用命令

ps

专门用于查看进程状态的命令。执行该命令会得到一个静态结果,是调用命令时,进程的一个快照。若直接使用ps命令,只会给出属于当前用户且在当前终端上(带终端且终端为当前终端)的进程。

要带选项的话,有两种写法:BSD风格和System V风格,System V风格每个选项前要加"-",BSD风格不需要。

BSD风格常用选项:

  • a:显示所有用户的带终端的进程
  • u:基于进程属主名列出进程信息
  • x:显示所有用户的无终端的进程

System V风格常用选项:

  • -e:显示所有用户的所有进程
  • -l:显示更多列信息
  • -F:显示完整列信息


ps aux
  • USER : 属主名
  • PID : 进程ID
  • %CPU : 所用CPU时长占比
  • %MEM : 所用物理内存占比
  • VSZ : 所用虚拟内存大小(单位:KiB)
  • RSS : 常驻内存集(物理内存)大小(单位:KiB)
  • TTY : 所关联的终端
  • STAT : 当前状态
  • START : 启动时间
  • TIME : 累计使用CPU时长
  • COMMAND : 启动该进程的命令(带中括号的为内核线程)


ps ajx
  • PPID : 父进程ID
  • PID : 进程ID
  • PGID : 所属进程组的组ID
  • SID : 会话ID
  • TTY : 所关联的终端
  • TPGID : 当前终端前台进程组的组ID
  • STAT : 当前状态
  • UID : 属主ID
  • TIME : 累计使用CPU时长
  • COMMAND : 启动该进程的命令(带中括号的为内核线程)


ps -elF
  • F : 进程权限
  • S : 进程状态
  • UID : 属主ID
  • PID : 进程ID
  • PPID : 父进程ID
  • C : 所用CPU时长占比
  • PRI : 优先级编号
  • NI : nice值
  • ADDR : 进程地址
  • SZ : 所用虚拟内存大小(单位:页)
  • WCHAN : 进程正在睡眠的内核函数名称 
  • RSS : 常驻内存集(物理内存)大小(单位:KiB)
  • PSR : 当前进程被分配到的cpu
  • STIME : 进程启动时间
  • TTY : 所关联的终端
  • TIME : 累计使用CPU时长
  • CMD : 动该进程的命令(带中括号的为内核线程)

进程状态

  • S - 可中断的睡眠,在等待某个条件或信号
  • D - 不可中断的睡眠,收到信号不唤醒,进程持续等待直到有中断发生
  • R - 运行或者就绪态(在运行队列中等待)
  • I - Idle,空闲状态
  • T - 停止,进程收到SIGTIN,SIGSTOP,SIGSTP,SIGTOU信号后会停下来
  • Z - 僵尸态,进程虽已停止,但其描述符仍然存在
  • < - 高优先级进程
  • N - 低优先级的进程
  • + - 前台进程组中的进程
  • l - 多线程进程
  • s - 会话进程的首进程(会话leader)

top

ps所给出的信息是静态信息,是命令调时的进程状态。top实施的是动态监控。

常用选项:

  • d:指定刷新时长(单位:秒)
  • b:批模式,刷新状态时不覆盖之前的状态,另起一屏显示
  • n:批模式下显示多少批次

常用交互命令:

  • M:根据驻留内存大小排序
  • T:根据占据的cpu时长排序
  • P:根据占据的cpu百分比排序
  • l:是否显示平均负载和系统启动时间
  • t:是否显示进程和cpu状态
  • m:是否显示与内存相关的信息
  • c:是否显示完整的进程启动命令信息
  • q:退出top
  • k:杀死指定进程
  • 1:展开显示每个cpu的负载情况(默认显示的是多个cpu的平均负载)



References: