您的位置:首页 > 运维架构 > Linux

Linux:ps命令以及进程状态详解

2012-12-12 15:17 796 查看
Linux 查看进程PS命令详细介绍

1.ps简介
ps命令就是最根本相应情况下也是相当强大地进程查看命令.运用该命令可以确定有哪些进程正在运行和运行地状态、进程是否结束、进程有没有僵死、哪些进程占用了过多地资源等等.总之大部分信息均为可以通过执行该命令得到地.
2. ps命令及其参数
Linux 查看进程ps命令最经常使用地还是用于监控后台进程地工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信地,所以如果需要检测其情况,便可以运用ps命令了.该命令语法格式如下:
ps[选项]
-e显示所有进程,环境变量
-f全格式
-h不显示标题
-l长格式
-w宽输出
a显示终端上地所有进程,包括其他用户地进程
r只显示正在运行地进程
x显示没有控制终端地进程
O[+|-]k1[,[+|-]k2[,…]]根据SHORTKEYS、k1、k2中快捷键指定地多级排序顺序显示进程列表.

注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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息