Linux 查看进程PS命令详细介绍

 

1.ps简介

   ps命令就是最根本相应情况下也是相当强大地进程查看命令.运用该命令可以确定有哪些进程正在运行和运行地状态、进程是否结束、进程有没有僵死、哪些进程占用了过多地资源等等.总之大部分信息均为可以通过执行该命令得到地.

2. ps命令及其参数

Linux 查看进程ps命令最经常使用地还是用于监控后台进程地工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信地,所以如果需要检测其情况,便可以运用ps命令了.该命令语法格式如下:

ps[选项]

-e显示所有进程,环境变量

-f全格式

-h不显示标题

-l长格式

-w宽输出

a显示终端上地所有进程,包括其他用户地进程

r只显示正在运行地进程

x显示没有控制终端地进程

O[+|-]k1[,[+|-]k2[,]]根据SHORTKEYSk1k2中快捷键指定地多级排序顺序显示进程列表.

 

1对于ps的不同格式都存在着默认地顺序指定.这些默认顺序可以被用户地指定所覆盖.在这里面“+”字符是可选地,-”字符是倒转指定键地方向.pids只列出进程标识符,之间运用逗号分隔.该进程列表必须在命令行参数地最后一个选项后面紧接着给出,中间不能插入空格.比如:ps-f1,4,5.:

2以下介绍长命令行选项,这些选项都运用“--”开头:

--sortX[+|-]key[,[+|-]key[,]]SORTKEYS段中选一个多字母键.+”字符是可选地,因为默认地方向就是按数字升序或者词典顺序.比如:ps-jax-sort=uid,-ppid,+pid.

--help显示帮助信息.

--version显示该命令地版本信息.

3在前面地选项说明中提到了排序键,接下来对排序键作进一步说明.需要注意地是排序中运用地值是ps运用地内部值,并非仅用于某些输出格式地伪值.排序键列表见表4-3.

4-3 排序键列表

短格式            长格式                       

C                      cmd                           可执行的简单名称

C                      cmdline                      完整命令行

F                       flags                           长模式标志

g                       pgrp                           进程的组ID

G                      tpgid                          控制tty进程组ID

j                        cutime                        累计用户时间

J                       cstime                       累计系统时间

k                       utime              用户时间

K                      stime              系统时间

m                      min_flt             次要页错误的数量

M                      maj_flt             主要页错误的数量

n                       cmin_flt            累计次要页错误

N                       cmaj_flt            累计主要页错误

o                       session             对话ID

p                       pid                进程ID

P                      ppid                父进程ID

r                       rss                驻留大小

R                      resident            驻留页

s                      size               内存大小(千字节)

S                     share               共享页的数量

t                        tty                             tty次要设备号

T                      start_time           进程启动的时间

U                      uid               UID

u                       user                用户名

v                      vsize              总的虚拟内存数量(字节)

   y                      priority            内核调度优先级

 

3.ps命令对应的进程状态解说

大写字母:

  D Uninterruptible sleep (usually IO)

  R Running or runnable (on run queue)

  S Interruptible sleep (waiting for an event to complete)

  T Stopped, either by a job control signal or because it is being traced.

  W paging (not valid since the 2.6.xx kernel)

  X dead (should never be seen)

  Z Defunct (”zombie”) process, terminated but not reaped by its parent.

  小写字母及其它符号:

  < high-priority (not nice to other users)

  N low-priority (nice to other users)

  L has pages locked into memory (for real-time and custom IO)

  s is a session leader

  l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

  + is in the foreground process group

  linux上进程有5种状态:

  1. 运行(正在运行或在运行队列中等待)

  2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)

  3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)

  4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)

  5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

  ps工具标识进程的5种状态码:

  D 不可中断 uninterruptible sleep (usually IO)

  R 运行 runnable (on run queue)

  S 中断 sleeping

  T 停止 traced or stopped

  Z 僵死 a defunct (”zombie”) process

  注: 其它状态还包括W(无驻留页), <(高优先级进程), N(低优先级进程), L(内存锁页).

  使用ps格式输出来查看进程状态:

  ps -eo user,stat..,cmd

  user 用户名

  uid 用户号

  pid 进程号

  ppid 父进程号

  size 内存大小, Kbytes字节.

  vsize 总虚拟内存大小, bytes字节(包含code+data+stack)

  share 总共享页数

  nice 进程优先级(缺省为0, 最大为-20)

  priority(pri) 内核调度优先级

  pmem 进程分享的物理内存数的百分比

  trs 程序执行代码驻留大小

  rss 进程使用的总物理内存数, Kbytes字节

  time 进程执行起到现在总的CPU暂用时间

  stat 进程状态

  cmd(args) 执行命令的简单格式

  例子:

  查看当前系统进程的uid,pid,stat,pri, uid号排序.

  ps -eo pid,stat,pri,uid –sort uid

  查看当前系统进程的user,pid,stat,rss,args, rss排序.

  ps -eo user,pid,stat,rss,args –sort rss