LINFO

ps命令

 

PS(即,处理状态命令被用来提供关于当前正在运行的信息的过程,包括它们的过程标识号(PID)来。

过程也称为任务,是程序的执行(即运行)实例。系统为每个过程分配一个唯一的PID。

ps的基本语法是

ps [options]

当没有任何选项的情况下使用ps时,默认情况下它将发送到标准输出,即显示监视器,该输出显示系统中当前至少两个进程的四项信息:shell和ps。shell是一个程序,它在类Unix操作系统中提供传统的纯文本用户界面,用于发布命令并与系统交互,并且在Linux上默认为bash。ps本身就是一个进程,只要它的输出显示就会死掉(即终止)。

这四个项目分别标记为PID,TTY,TIME和CMD。TIME是进程运行的CPU(中央处理单元)时间(以分钟和秒为单位)的时间量。CMD是启动该过程的命令的名称。

TTY(现在代表终端类型,但最初代表电传打字)是用户登录控制台终端(即,显示器和键盘的组合)的名称,也可以使用tty命令找到。这些信息通常只对多用户网络有用。

使用ps获得有关系统上当前进程的更完整信息的常用方便方法是使用以下命令:

ps -aux | less

-a选项告诉ps列出所有用户的进程在系统上,而不是仅仅与当前用户的,与外班组长和不与终端关联的进程。小组负责人是一组相关过程的第一个成员。

-u选项告诉ps提供有关每个过程的详细信息。在-x选项添加到不具有控制终端列表过程,如守护进程,这是被期间启动程序启动(即,计算机启动),并在后台运行悄悄直到它们由特定的事件或条件激活。

由于进程列表可能相当长,占用的屏幕不止一个,ps -aux的输出可以传送(即传输)到less命令,从而可以一次查看一个屏幕。按下空格键可将输出向前推进一个屏幕,按b键则向后推一个屏幕。

ps -aux提供的关于每个进程的信息包括进程的用户,PID,进程使用的CPU百分比,进程使用的内存百分比,VSZ(虚拟大小以千字节为单位),RSS(实际内存大小或以1024字节为单位的常驻集大小),STAT(进程状态代码),进程的启动时间,进程已激活的时间长度以及启动进程的命令。过程状态代码包括D,不间断睡眠; N,低优先级; R,可运行(在运行队列上); S,睡觉; T,追踪或停止; Z,不存在(僵尸)。

与大多数命令相比,ps之前的连字符是可选的,不是强制性的。因此,以下内容可能(有时候会)用来代替上述命令:

ps aux | less

用于查看系统上运行的所有进程的另一组选项是

ps -ef | less

-e选项生成的有关当前正在运行的每个进程的信息列表。在-f选项生成包含的信息较少的项目超过了每个进程的列表-l选项。

在由ps -ef显示的列中,UID包含拥有进程的帐户的用户名(通常是启动进程的同一用户),STIME显示进程启动的时间,或者开始日期超过启动日期24小时前。

ps显示的过程可以限制为属于任何给定用户的过程,方法是通过grep(用于搜索文本的过滤器)输出输出。例如,属于具有用户名adam的用户的进程可以显示如下:

ps -ef | grep adam

-l选项会生成一个列表,当与-e和-f选项一起使用时,将创建一个包含15列的表:

ps -efl

最感兴趣的附加列是NI和SZ。前者显示过程的良好价值,它决定了过程的优先级。值越高,优先级越低。Linux系统默认的nice值为0。

后者在内存中显示进程的大小。该字段的值是进程占用的页数。在Linux系统上,一页是4,096字节。

ps通常用于获取故障进程的PID,以便使用kill命令终止它。例如,如果发现冻结程序或崩溃程序的PID为1125,则通常可以终止该过程:

kill 1125

然后可以使用ps -ef或ps -efl来确认该过程确实已停止。如果没有,那么应该使用更有力的-9选项,即,

kill -9 1125

pstree命令类似PS的,因为它可以用来显示所有系统上的进程与它们的PID一起。然而,它不同之处在于它以树形图表示它的输出,显示进程如何相互关联,并且它提供的关于每个进程的详细信息不如ps。

2005 
年5月20日创建。版权所有©2005 The Linux Information Project。版权所有。

一般来说,ps aux命令执行结果的几个列的信息分别是:

USER      进程所属用户
PID          进程ID
%CPU     进程占用CPU百分比
%MEM    进程占用内存百分比
VSZ         虚拟内存占用大小      单位:kb(killobytes)
RSS        实际内存占用大小       单位:kb(killobytes)
TTY         终端类型
STAT      进程状态
START   进程启动时刻
TIME      进程运行时长
COMMAND 启动进程的命令

VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来

DATA
1、数据占用的内存。如果top没有显示,按f键可以显示出来。
2、真正的该程序要求的数据空间,是真正在运行中要使用的。

top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下:
s – 改变画面更新频率
l – 关闭或开启第一部分第一行 top 信息的表示
t – 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的顺序排列表示进程列表
P – 以 CPU 占用率大小的顺序排列进程列表
M – 以内存占用率大小的顺序排列进程列表
h – 显示帮助
n – 设置在进程列表所显示进程的数量
q – 退出 top
s – 改变画面更新周期

序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态。(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h

默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过下面的快捷键来更改显示内容。

通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z 即可显示或隐藏对应的列,最后按回车键确定。
按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。
按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的 R 键可以将当前的排序倒转。

http://blog.chinaunix.net/uid-22858177-id-381533.html

Linux中ps与top命令
这两个命令都是查看系统进程信息的命令,但是用处有点儿不同
1.ps命令–提供系统过去信息的一次性快照
也就是说ps命令能够查看刚刚系统的进程信息  命令:ps aux或者ps lax
[root@Linux ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.1   2032   644 ?        Ss   21:55   0:01 init [3]
root         2  0.0  0.0      0     0 ?        S    21:55   0:00 [migration/0]
root         3  0.0  0.0      0     0 ?        SN   21:55   0:00 [ksoftirqd/0]
……
解释如下:
VSZ–进程的虚拟大小
RSS–驻留集的大小,可以理解为内存中页的数量
TTY–控制终端的ID
STAT–也就是当前进程的状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
STRAT–这个很简单,就是该进程启动的时间
TIME–进程已经消耗的CPU时间,注意是消耗CPU的时间
COMMOND–命令的名称和参数
而]#ps lax  可以看到父进程,谦让值以及该进程正在等待的资源等待
2.top命令–这个命令就很有用了
top命令反应的是系统进程动态信息,默认10s更新一次
 
如下例所示:
  $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'  其中rsz是是实际内存

ps命令手册的更多相关文章

  1. 10个重要的Linux ps命令实战

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用. PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系 ...

  2. [置顶] linux常用命令手册

    前言:整理了一份linux常用命令手册,与大家分享.这是一些比较常用的命令. 我已经整理成一份PDF带书签的手册,可以到CSDN免费下载. 下载地址:http://download.csdn.net/ ...

  3. 【转】10个重要的Linux ps命令实战

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用. PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系 ...

  4. ps命令注意事项

    1.ps命令由于历史原因,版本比较多,主要分为三种版本 1)Unix风格的版本,命令参数加单横线.比如ps -ef 2)BSD风格的版本,命令参数前不加任何横线.比如ps aux 3)GNU风格的版本 ...

  5. 10个常用的ps命令总结,参数

    Linux系统中10个常用的ps命令总结 PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系统在某一事件的进程状态.如果你想不断更新查看的这个状态,可以使用 ...

  6. Solaris/Linux 命令手册

    无意翻到之前收藏的一个文档,共享一下. Solaris/Linux 命令手册 1. 系统 # passwd:修改口令 # exit:退出系统 2. 文件 # cp:复制文件或目录,参数:-a递归目录, ...

  7. Linux系统中10个常用的ps命令总结

    Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps.这个工具能在命令行中使用PS 命令是什么 查看它的man手册可以看到,ps命令能够给出当前系统中进程的快照.它能捕获系统在 ...

  8. OS第1次实验报告:熟悉使用Linux命令和剖析ps命令

    零.个人信息 姓名:陈韵 学号:201821121053 班级:计算1812 一.实验目的 熟悉Linux命令行操作 二.实验内容 使用man查询命令使用手册 基本命令使用 三.实验报告 1. 实验环 ...

  9. Linux下ps命令详解 Linux下ps命令的详细使用方法

    http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...

随机推荐

  1. SpriteBuilder中如何固定两个互不接触的物理物体?

    如下图: 这个弹簧装置由3部分组成(从上到下): 弹板 弹簧 弹簧金属底座 其中弹板将固定在弹簧上(但并没有接触,如上图),这就引出一个有趣的问题:怎么样才能将两个独立的物理物体(注意:是物理物体)固 ...

  2. Rest api简介

    理解和使用内容协商 我们的开发者在发送一个 REST API 请求的同时,根据应用场景,针对相同的资源,可能会期待不同的返回形式. 比如,我希望根据用户客户端语言,同一个资源的内容可以返回不同的语言. ...

  3. 携程Android App的插件化和动态加载框架

    携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验.本文将详细介绍Android平台插件式开发和动态加载技术的原理和实 ...

  4. Mina源码阅读笔记(一)-整体解读

    今天的这一节,将从整体上对mina的源代码进行把握,网上已经有好多关于mina源码的阅读笔记,但好多都是列举了一下每个接口或者类的方法.我倒是想从mina源码的结构和功能上对这个框架进行剖析.源码的阅 ...

  5. Java核心技术第四章——2.final 和 static

    final实例域 实例域(对象的属性)可修饰为final.修饰为final后,在构建对象时必须初始化这个实例域.若没有在实例域进行初始化,那么必须在每个构造器内初始化这个实例域(否则会编译错误). 表 ...

  6. 负载均衡之让nginx跑起来

    一个简单的原因,我不得不考虑负载 小源做了个网站,很简单,传统的java开放框架,和一个tomcat搞定,让人没想到的是网站既然火起来了,很快一个tomcat就搞不定了,怎么办? 网站访问量很大,既然 ...

  7. Java小技巧输出26个英文字母

    相信有的童鞋写到过与字母有关的小东西,是否有写过全部的字母呢?26个这么多字母,一个个打会疯掉.所有咱们可以用一个小技巧使用for循环帮我们把26个字母自动搞出来,大家来瞅一眼把! 使用Java遍历2 ...

  8. scrollWidth,clientWidth与offsetWidth的区别

    scrollWidth  是对象的实际内容的宽,不包边线宽度,会随对象中内容的多少改变(内容多了可能会改变对象的实际宽度). clientWidth  是对象可见的宽度,不包滚动条等边线,会随窗口的显 ...

  9. JAVA物联网九大核心热点技术

    1. Unix/Linux平台技术: Unix系统原理.Unix常用命令.Shell编程.  2. Java EE核心技术: Java语言核心.Java高级API.JVM及性能优化.Java Secu ...

  10. memocache工作原理

    1       Memcache是什么 Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的 ...