首先要明白什么是进程
进程是一个正在运行的程序。也就是说在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. c#反序列化

    C#序列化(转载) 2011-03-15  |  凯之风  |  转藏(2) 序列化有下列要求: A> 只序列化PUBLIC的成员变量和属性 B> 类必须有默认识构造函数 C> 如果 ...

  2. Windows下动态库的隐式调用

    多年的工作经验告诉我Windows下使用动态库最简单的方法:使用def导出函数,然后隐式调用. 具体做法如下: (1)首先使用visual studio 创建“Win32项目”,如下图: (2)然后在 ...

  3. Chrome DevTools学习笔记

    ---恢复内容开始--- chrome和firefox的开发者工具大同小异,都非常强大.今天在博客园上看了这篇文章(http://www.cnblogs.com/Wayou/p/chrome-cons ...

  4. Introduction to Glide, Image Loader Library for Android, recommended by Google

    In the passed Google Developer Summit Thailand, Google introduced us an Image Loader Library for And ...

  5. WEB性能测试:你应该带上VisualStudio2010

    原文地址:http://www.16aspx.com/Article/62 在Web性能测试方面,增加了循环(Loops)和条件(Conditions),让开发人员可以为他们的应用程序写出更复杂,更智 ...

  6. Selenium webdriver firefox 路径设置问题

    问题: Cannot find firefox binary in PATH. Make sure firefox is installed. 原因:selenium找不到Firefox浏览器. 方法 ...

  7. RHEL 6.4 安装svn和apache

    1.安装软件包(RHEL已经按默认设置安装完成) 需要安装的.rpm软件包: postgresql-libs perl-URI subversion mod_dav_svn 2.创建svn文件夹和版本 ...

  8. solr5.3.1 集群服务搭建

    转http://978538.blog.51cto.com/968538/1710442 一. 安装部署 zookeeper集群部署: 节点: 10.1.12.51:2181      node1 1 ...

  9. 谁动了我的timer?——C#的垃圾回收和调试

    先来看如下的一段代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 using System; using System.Threading; publi ...

  10. 第一个 Python 程序 - Email Manager Demo

    看了一些基础的 Python 新手教程后,深深感觉到 Python 的简洁与强大,这是我的第一个 Python Demo.下面是完整代码与执行截图. 代码: # encoding: utf-8 ''' ...