首先要明白什么是进程
进程是一个正在运行的程序。也就是说在Linux系统上运行的所有东西都是进程。和进程相比较,作业是一系列按一定顺序执行的命令。一条简单的命令可能会涉及多个进程,尤其是当使用管道和重定向时。例如命令:

# nroff –man ps.1 | grep kill | more

将产生三个进程,每一条命令一个。

Linux操作系统有好几种进程,每一种都有其各自的品质和特性。下面给出了Linux系统的三种进程:

■ 交互式进程:一个由shell启动并控制的进程。交互式进程既可在前台也可在后台运行。

■ 批处理进程:与终端无关,安排在指定时刻完成的一系列进程。

■ 守护进程:在引导系统时起动,以执行即时的操作系统任务,如 lpd、inetd、named等。

1. ps简介

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。

2. ps命令的输出

ps命令通常以行列的形式输出结果。系统中的每一个进程都有一个唯一的标志符以便Linux可以识别它们。Linux通过给每一个进程分配唯一的数码来处理进程,这个数码叫做进程ID号(或PID号)。PID号当系统被引导时从0开始,每增加一个进程就加1位,直到系统确定的一个数字,例如65564。然后,PID号再从0开始,周而复始,不断循环。通常PID号较小的进程是系统的核心和守护进程,当系统被引导时它们就存在,并只要系统还在运行,它们就处于活跃状态。当用户管理进程时(比如终止它们),就必须要用到PID号。ps命令输出的TTY列告诉用户进程从哪一个终端开始。如果作为普通用户登录,那么通常就是用户自己的终端或控制台。如果在一个多控制台的系统上工作,用户将看到自己在每一个控制台起动的所有进程。

ps命令输出的STAT列告诉用户当前进程的状态。进程最常见的两种状态是S(sleeping)代表沉睡的进程和R(running)代表运行的进程。运行的进程是当前正在CPU中执行的进程,而沉睡的进程是当前并不活动的进程。进程可以每秒种在沉睡和运行两种状态间转换多次。

ps命令输出的TIME列告诉用户进程占用CPU的总共时间,这些时间通常都很短,这是因为大多数进程运行结束只需很短的时间就够了。

COMMANDS列,这一列包含了用户所运行的所有命令的名称。出现在COMMANDS列中的通常都是用户使用的命令,但有些命令还会引起其它的进程,这些进程被称为子进程。

3. ps命令及其参数

  ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用ps命令了。

该命令语法格式如下:

  ps

  下面对命令选项进行说明:
  -e 显示所有进程。
  -f 全格式。
  -h 不显示标题。
  -l 长格式。
  -w 宽输出。
  a 显示终端上的所有进程,包括其他用户的进程。
  r 只显示正在运行的进程。

3. 常用ps命令参数

最常用的三个参数是u、a、x,下面将通过例子来说明其具体用法。

以root身份登录系统,查看当前进程状况

$ ps

PID TTY TIME COMMAND

 ttyp0 :: bash

 ttyp0 :: ps

可以看到,显示的项目共分为四项,依次为PID(进程ID)、TTY(终端名称)、TIME(进程执行时间)、COMMAND(该进程的命令行输入)。

可以使用u选项来查看进程所有者及其他一些详细信息,如下所示:

$ ps u

USER PID %CPU %MEM USZ RSS TTY STAT START TIME COMMAND

test  0.0 0.4   ttyp0 S Nov27 : -bash

test  0.0 0.3   ttyp0 R Nov27 : ps u

在bash进程前面有条横线,意味着该进程便是用户的登录shell,所以对于一个登录用户来说带短横线的进程只有一个。还可以看到%CPU、%MEM两个选项,前者指该进程占用的CPU时间和总时间的百分比;后者指该进程
占用的内存和总内存的百分比。

$ ps x
(结果太长就不列出了..)

在这种情况下我们会看到所有控制终端的进程;

特别说明 -l选项可以告诉您某条进程是由哪一条进程引起的,这只有当想鉴别子进程时才有用:

$ ps -l

F       UID  PID   PPID          PRI   NI     SIZE    RSS   WCHAN        STAT             TTY   TIME            COMMAND
114d9c S v01 : –bash
R v01 : ps –l

PPID(Parent Process ID)是进程的父进程的ID号。在本例中,列出的第一个进程(PID 41)是第二个进程(PID 121)的父进程。您还可以看到,ps –l的父进程login Bourne shell的PID是1,这是操作系统的init进程。如果init被终止,那么所有的进程都会被杀死。简单地说,如果init死了,系统将关机。

linux 命令——PS命令的更多相关文章

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

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

  2. linux之ps命令

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...

  3. Linux下ps命令

    简述 Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,动态的显示进程信息 ...

  4. 【Linux】ps命令

    Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...

  5. Linux 下 ps 命令

    简述 Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,动态的显示进程信息 ...

  6. 【Linux】- ps 命令

    Linux ps命令用于显示当前进程 (process) 的状态. 语法 ps [options] [--help] 参数: -A     列出所有的行程 -w    显示加宽可以显示较多的资讯 -a ...

  7. linux top ps 命令

    http://javawind.net/p131 VIRT:virtual memory usage 虚拟内存1.进程“需要的”虚拟内存大小,包括进程使用的库.代码.数据等2.假如进程申请100m的内 ...

  8. Linux用ps命令查找进程PID再用kill命令终止进程的方法

    使用linux操作系统,难免遇到一些软件"卡壳"的问题,这时就需要使用linux下强大的kill命令来结束相关进程.这在linux系统下是极其容易的事情,你只需要kill xxx即 ...

  9. linux中ps命令的用法说明

      在linux中使用ps命令可以查看有哪些进程在运行和运行的状态.进程是否结束.进程有没有僵尸.哪些进程占用了过多的资源等等. ps命令最常用的是用于监控后台进程的工作情况. 名称:ps  www. ...

随机推荐

  1. 数学概念——I - 数论,线性方程

    I - 数论,线性方程 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit  ...

  2. 《University Calculus》-chaper8-无穷序列和无穷级数-比值审敛法

    在分析等比级数的过程中,我们发现对于q<1的等比级数是收敛的,它表示级数每一项与它前一项的比值小于1,我们能否将这种方法推广起来用于一般级数的审敛呢? 从极限的定义出发:

  3. 剪花布条 - HDU 2087(简单KMP | 暴力)

    分析:基础的练习............... ============================================================================ ...

  4. javaweb开发过程中的地址写法

    凡是要表示web资源的地址,比如浏览器地址栏中,都是 /凡是要表示硬盘地址, 都是 \  public class ServletDemo1 extends HttpServlet { //实际开发过 ...

  5. JSP写入MySQL数据库中出现乱码问题笔记

    1.在数据库链接字符串上要形如:jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8(注意要加chara ...

  6. ajax同步刷新

    \js\ajax.js //图片形式状态切换 function toggle(url,action,obj,str,id){//状态转换/obj-当前对象/str-传入类型字符串/id-传入ID $. ...

  7. 字符集转换 字符类型转换 utf-8 gb2312 url

    vs默认是GB2312编码,你看到的程序源代码是,输出结果是,内部存储是, 1 如果你想改变内部存储可以用下面的这些函数 2 如果你想改变源代码的存储方式你可以用文本编辑工具修改之后重新编译 3 如果 ...

  8. Android系统中设置TextView的行间距(非行高)

    Android系统中TextView默认显示中文时会比较紧凑,不是很美观.为了让每行保持一定的行间距,可以设置属性android:lineSpacingExtra或android:lineSpacin ...

  9. Android 解屏幕锁与点亮屏幕(来电时效果)

    PowerManager pm=(PowerManager) getSystemService(Context.POWER_SERVICE); //获取电源管理器对象 PowerManager.Wak ...

  10. Mono For Android离线激活

    我们之前创建过Mono For Android的开发环境,但是使用一段时间后就说明证书过期,那如何破解呢? 但我说的这个也就只能使用免费的证书. 首先下载免费的证书,monoandroid.licx, ...