免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1023 | 回复: 0
打印 上一主题 下一主题

TEST: PS命令使用说明 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-06 13:37 |只看该作者 |倒序浏览

BSD 版 ps 命令使用说明及相关概念
路径
  
语法
  
作用
  
选项说明
  
选项制约
  
表头说明

使用实例

概念说明

诊断常识

路径      
/usr/ucb
语法
ps [-acglnrSuUvwx][-R system][-t term] [num]
作用
报告
进程
的有关信息
选项说明           
类别
选项
作用






进程控制类
-a
显示所有进程,除
group leader
和不属于任一终端的进程(即不具有
控制终端
)以外。注意由于 –g 选项缺省,因此实际上也显示 group leader
-g
为缺省选项,允许显示 group leader
-r
只显示状态为 R 或 O 的进程,即正在运行的和位于运行就绪队列中的进程
-x
所有不属于任何终端的进程(实际还包括属于当前终端的进程)
-t term
显示属于终端 term 的进程,其中 term 为终端设备名称,有两种表达方式:设备文件名,如 tty06;以 tty 开头的,可以直接写后面的数字,如 tty06 可写作 06;如果 term 为 ?则显示所有不属于任何终端的进程

Num

显示进程 ID 为 num 的进程





格式控制类
-c
只显示命令名,即不显示命令的路径及其参数
-l
以较长格式显示,其中包括
F
  
UID
  
PID

PPID

PRI

NI
  
SZ

RSS
  
WCHAN

S

TT
  
TIME

COMMAND
-n

UID
取代
USER
-S

TIME
字段显示进程及其可以获得的已终止子进程的累计 CPU 时间
-u
以用户格式显示,其中包括
USER

PID

SZ

RSS

TT

S
  
START

TIME

COMMAND
-v
显示如下内容,包括
PID

TT

S

TIME

SIZE

RSS

COMMAND
-w
超出窗口部分折行显示

特殊类
-R system
重新指定系统根路径为 system,仅超户使用
-U
更新 (
/var/tmp/ps_data
),仅超户使用

选项制约
-l  -v  -u  同时使用时,取最后一个选项
-R 必须和 –a 或 –t 选项联合使用(注意其错误提示有误)
-t  -x 同时使用时,取 -t
表头说明
表头
说明





F
进程标志
00 进程已终止,进程表入口可用
01 系统进程,总在主存中
02 父进程为追踪进程
04 父进程的追踪信号已将进程终止,父进程开始等待
08 进程现在主存中
10 进程现在主存中,并且被锁定直到某事件的完成
20 进程不能被交换
实际进程标志可以是以上标志的组合’或’操作
UID
进程
真实用户
ID
USER
进程真实用户名
PID
进程 ID
PPID
父进程 ID
PRI
进程的
优先级
,该值依赖进程调度策略
NI
进程
NICE
值,用于优先级计算
SZ(SIZE)
进程的
虚拟地址空间
大小,以 K 为单位
RSS
以 K 为单位的进程
常驻集
的大小
WCHAN
使进程目前在等待或睡眠的事件




S
进程状态
O 进程在 CPU 中运行
S 睡眠,等待某事件的完成
R 可运行状态,进程在运行队列中等待
I 空闲:进程正被创建
Z
僵尸状态
:进程终止,父进程不等待
T 追踪:因为父进程正进行追踪,该进程被信号中断
X SXBRK 状态:进程等待更多的主存分配
TT
进程所属的终端
TIME
进程执行所占 CPU 的时间 hh:mm:ss
START
进程开始时间,若是 24 小时之前则以日期表示
COMMAND
启动进程的命令行
使用实例
ps –axr
显示当前系统中所有正在运行和处于运行就绪队列中的进程,其中选项 –a 和 –x 选择所有进程,而选项 –r 限制输出为运行和处于运行就绪队列中的进程。
ps –t pts/5,pts/6
显示属于终端 pts/5 的进程(其中终端名称可使用命令 tty 查看),而第 2 个及之后的终端均被忽略
ps –l 1103
以长格式显示进程 ID 为 1103 进程的有关信息,与 –t 类似,如果 ID 有 1 个以上,则从第 2 个开始均被忽略。
ps –vuScn
按照 –u 的格式输出,因为 –u 出现在 –v 之后,-S 使 TIME 字段显示进程及该进程已终止子进程的累计 CPU 时间之和,-c 使 COMM 字段只显示启动进程的命令行中的命令名称,-n 以 UID 取代 USER 字段。
ps –w
ps 命令按照每行 80 个字符的窗口大小进行输出,如果窗口太小,超出窗口的部分将被截断,使用 –w 选项使超出窗口的部分折行输出。
root$ps –a –R rootdir
将 rootdir 设置为根目录,从该目录进行 ps 操作。rootdir 可以为指向 / 的链接,也可以为远程系统的根目录。
root$ps –U
更新 /var/tmp/ps_data 文件,在该文件中记录了文件 /etc/passwd 和路径 /dev 中的有关信息,PS 命令需要使用用户和终端有关的信息时,将从该文件中读取。如果该文件不存在,PS 命令将自动进行更新(必须具有超户权限)。
概念说明
进程                                   一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。它包括一个地址空间和一个控制点。进程是基本调度实体—任何时刻只有一个进程在 CPU 上运行(单处理机系统)。同时,进程竞争并占用各种系统资源,如设备和内存。进程向系统请求服务,由内核为其完成该请求。
每个进程都有一个进程上下文,包括描述该进程的所有信息。上下文由以下几个部分组成:
1.用户地址空间,包括程序正文、数据、用户堆栈、共享内存区等。
2.控制信息,其中最重要的两个数据结构是 u 区和 proc 结构, u 区中只包括那些在进程运行时才需要的数据,而 proc 结构中的信息可能在进程不运行时也需要。另外每个进程都有自己的内核堆栈和地址转换表。
3.凭证,包括与其相关的用户 ID 和组 ID。
4.环境变量
5.硬件上下文,包括通用寄存器的值以及一组特殊的系统寄存器(程序计数器、堆栈指针、处理器状态字、内存管理寄存器,浮点单元寄存器)。在上下文切换时,寄存器的值保存在 u 区的特定部分(PCB进程控制块)。
group leader         每个进程属于一个进程组。进程组用进程组 ID 来标识。内核使用这种机制来向一个进程组中的所有进程采取某些动作。每个进程组都有一个进程组长(group leader),它的进程 ID(PID)和进程组 ID(GID)是相同的。通常一个进程从它的父进程继承 GID,一个进程组中所有其他的进程都是组长的后代。
控制终端                           每个进程都可以有一个控制终端。该控制终端通常是创建进程的登录终端。同一个进程组中的所有进程共享这个相同的控制终端。
真实用户                           执行某个程序文件以启动进程时,进程的真实用户设置为该程序文件的执行者,而有效用户设置为程序的所有者。通常真实用户和有效用户是相同的,但是如果该程序文件被设置了 s 位,即用 ls –l 命令显示文件的执行位不是 x,而是 s 时,如果由用户 B 执行用户 A 的程序,那么所启动进程的真实用户为 B,而有效用户为 A。一个典型的例子是:用户要更改自己的密码,必须修改 /etc/passwd,而该文件只能由超户修改。解决方法是设置 /usr/bin/passwd 的 s 位,这样用户执行 passwd 命令,则具有 /usr/bin/passwd 所有者 root 的权限(进程有效用户为 root),即可以对 /etc/passwd 进行修改。
进程优先级         进程的优先级可以是 0~127 之间的任一个整数值(不同系统该值可能不同,例如 UNIX_SV 4.2MP 1.release.0630.05:38,/usr/include/sys/ddi.h),数值越小对应的优先级越高。在进程 Proc 结构中包含有关优先级的字段有:
p_pri                     当前调度优先级
p_usrpri                用户态优先级
p_cpu                   最近 CPU 使用情况的度量
p_nice                   用户可以控制的 nice 因子
在 PS 命令中显示的 PRI 为 p_pri,NICE 为 p_nice。优先级的计算依靠两个因素:NICE 值和 p_cpu,NICE 值越大,优先级越低,反之越高。
虚拟地址空间进程地址空间是虚拟的,通常只有部分映射到物理内存单元上。内核将进程地址空间的内容保存在各种存储对象上,包括物理内存,磁盘上的文件,特别地还可以保存在本地和远程磁盘的交换区上。通常由内核的内存管理子系统完成进程存储页面在这些对象之间的转移,对虚存地址的引用通过地址转换表转换到相应的物理单元上。进程的地址空间包括程序访问或引用的全部(虚)内存单元。任何时刻,地址空间连同进程的寄存器上下文就是进程的当前状态。
常驻集                 进程上下文由 Proc 结构、user 结构、用户栈和核心栈的内容、用户地址空间的正文段、数据段、硬件寄存器的内容以及区表和页表等组成。在系统虚拟地址空间部分存放的进程上下文有:系统程序用页表、进程页表、Proc 结构、核心正文段和数据段等。系统虚拟空间的内容常驻内存,不因内存的大小或执行情况而换进换出(常驻集)。内核的正文段和数据段在 UNIX 系统不被看作进程上下文的一部分,它们只能在内核态访问。系统中只有一个内核实例运行,因此所有进程都映射到单一内核地址空间,即它被所有进程共享。
僵尸状态                           进程退出后,在父进程清除它之前,该进程一直处于僵尸状态。在此状态下,它所保留的唯一资源是 Proc 结构,其中包括退出状态和资源使用信息(在某些系统中使用一个 zombie 结构来保存这些数据)。这些信息可能对父进程有用,父进程通过调用 wait 获取该信息,同时 wait 释放 Proc 结构。如果父进程先于子进程死亡,init 将继承它的子进程。当这些子进程死亡时,init 调用 wait 释放子进程的 Proc 结构。
当一个进程先于其父进程死亡,并且父进程没有调用 wait,此时子进程的 Proc 结构将不会释放,而是保持僵尸状态直到系统重启。使用 PS 命令在 COMMAND 列显示  标志的为僵尸进程。僵尸进程不能被杀死,因为它们已经死亡。僵尸进程占用 Proc 结构,因此会减少处于活动状态的进程总数。
某些较新的 UNIX 变体允许进程指定不等待其子进程。例如在 UNIX_SV 4.2MP 1.release.0630.05:38 中,进程可以在 sigaction 系统调用中设定 SA_NOCLDWAIT 标志,指定 SIGCHLD 信号处理,即请求内核在调用者的子进程终止时不创建僵尸状态。
/var/tmp/ps_data   参见“ps 命令处理流程”
诊断常识
    通过频繁地检查 ps –ef 的输出,用户可以增加判断机器上正常进程的直觉力。在小型系统上,虽然进程的数目可能随时间有所变化,但是其上活跃进程的数目还是比较少。如果某进程的 TIME 列值增加不正常,或者该进程是另一个具有较大 pid 值进程的父进程,或者机器的响应时间突然变得非常慢,那么用户可以猜测此进程工作不正常。用户在判断不正常前必须要知道什么情况是正常的,而且对于不同机器其判断依据均有很大区别。当用户试图去解决某问题时,诊断问题源并不能给用户多少帮助。大多数问题都与特定命令或应用有关,而且许多与丢失文件或目录,或文件的不正确权限有关。因为 UNIX 系统是多用户和多任务操作系统,单个问题可能影响整个机器。虽然这可能导致机器明显减慢,操作很不正常,但是一般不会破坏机器上其他程序,用户或文件。而对于由病毒引起的问题,则往往不是这样,因此用户最好经常地将文件和数据在软盘和磁带上进行备份,尤其是在进行实验操作时。
对于不是按照预先设计进行操作的应用,常常会表现出下列失败之一:
1.进程提前死亡。如果应用程序是命令,系统常常意外地返回 SHELL。如果是 demon 进程,init 可能重复地产生此应用。对于前者,用户在 PS 输出中找不到与之对应的进程,而且此应用似乎执行得比正常情况快得多。对于后者,系统将变得非常慢,而且虽然机器磁盘一直在工作,但是启动任何命令常常都要几分钟的时间。有时重新引导系统能够修复这种错误,但更多情况下用户将不得不卸下此应用程序,或者删掉 /etc/inittab 中关于此程序的入口。
2.进程产生许多子进程。程序失败时,偶尔也会有下列现象:它重复地产生越来越多的子进程,用户能够很容易地检测到这个问题:此时机器变得非常慢,PS 输出中列出的进程也越来越多。这些意外产生的进程的父进程 pid 都一样,此父进程可能就是导致问题的原因。
3.进程消耗过度的 CPU 时间。进程出现问题时,可能将占用机器所能提供给它的所有 CPU 资源。如果机器明显减慢,而且 ps –ef 输出中某进程的 CPU 时间增长许多,通常是几分钟或更多,那么用户就可以确定是此问题。如果用户重复执行 ps –ef 命令,将会看到违法进程几乎占用了系统中所有可能的空闲 CPU 时间。这种问题是最难检测的,因为用户必须确定一个实时应用不具备合理使用所有 CPU 时间的权力。如果分时进程需要许多 CPU 资源,它们正确执行时常常会占用较长的 CPU 时间,但是不会明显降低机器的速度。
检测与进程有关的问题的关键在于准许响应时间的明显改变,或者是没有明显原因的,不正常的磁盘活动。



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/17004/showart_96005.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP