shell学习五十天----查看进程ps命令

时间:2015-07-28 10:48:22   收藏:0   阅读:3254

进程列表

列出进程中最重要的命令便是进程状态命令:ps.

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

 

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

 

ps为我们提供了进程的一次性(不要给性加重音)的查看,他所提供的查看结果并不动态连续;如果想对进程进行时间监控,应该使用top工具.

 

kill命令用来杀死进程

 

Linux上进程有五种状态

1.运行(正在运行或在运行队列中的等待)

2.中断(休眠中,受阻,在等待某个条件的形成或接收到信号)

3.不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生)

4.僵尸(进程已终止,但进程描述符存在,直到父进程调用wait()系统调用后释放)

5.停止(进程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号后停止运行)

 

ps工具标识进程的物种状态码:

状态码

说明

D

不可中断

R

运行

S

中断

T

停止

Z

僵尸

 

 

ps详解:

1.命令格式:

ps [参数]

2.功能

用来显示当前进程的状态

3.命令参数

参数

说明

a

显示所有进程

-a

显示统一终端下的所有程序

-A

显示所有进程

c

显示进程的真实名称

-N

反向选择

-e

等于”-A”

e

显示环境变量

f

显示程序间的关系

-H

显示树状结构

r

显示当前中断的进程

T

显示当前终端的所有进程

u

指定用户的所有进程

-au

显示较详细的资讯

-aux

显示所有包含其他使用者的进程

-C<命令>

列出指定命令的状态

--lines<行数>

每页显示的行数

--width<字符数>

每页显示的字符数

--help

显示帮助信息

--version

显示版本信息

 

4.简单的使用

案例1:显示所有进程:

#ps -A

 

 PID TTY          TIME CMD

    1 ?        00:00:04 init

    2 ?        00:00:00 kthreadd

    3 ?        00:00:00 migration/0

省略部分结果

 

案例2:显示指定用户信息:

#ps -u root

  PID TTY          TIME CMD

    1 ?        00:00:04 init

    2 ?        00:00:00 kthreadd

3 ?        00:00:00 migration/0

省略部分结果

 

案例3:显示所有进程信息,连同命令行

#ps -ef

UID        PID  PPID  C STIME TTY          TIME CMD

root         1     0  0 19:45 ?        00:00:04 /sbin/init

root         2     0  0 19:45 ?        00:00:00 [kthreadd]

root         3     2  0 19:45 ?        00:00:00 [migration/0]

root         4     2  0 19:45 ?        00:00:00 [ksoftirqd/0]

省略部分结果

 

案例4: psgrep常用组合用法,查找特定进程

命令:

#ps -ef|grep ssh

root      1358     1  0 19:46 ?        00:00:00 /usr/sbin/sshd

root      1650  1358  0 19:47 ?        00:00:00 sshd: root@pts/0 

root      3598  1652  0 21:27 pts/0    00:00:00 grep ssh

 

 

 

案例5:将目前属于您自己这次登入的PID与相关信息列出

#ps -l

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD

4 S     0  1652  1650  0  80   0 - 27116 wait   pts/0    00:00:00 bash

4 R     0  3600  1652  0  80   0 - 27033 -      pts/0    00:00:00 ps

 

分析说明:各相关信息的意义:

F代表这个程序的标识(flag),4代表使用者为super user

S代表这个程序的状态(STAT).

UID:程序被该UID所拥有

PID:就是这个程序的ID

PPID:则是其上级父程序的ID

C:CPU使用的资源百分比

PRI:这个是Priority(优先执序行)的缩写

NI:这个是nice

ADDR:这个是kernel function,指出该程序在内存的那个部分.如果是个running的程序,一般就是”-”.

SZ:使用掉的内存大小

WCHAN:目前这个程序是否正在运作当中,若为-表示正在运作

TTY: 登入这的终端机位置

TIME: 使用掉的CPU时间

CMD:所下达的指令为何

 

在预设的情况下,ps仅会列出与目前所在的bash shell有关的PID而已,所以当我们使用ps -l的时候,只有三个PID.

 

案例6:列出目前所有的正在内存当中的程序

#ps aux

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

root         1  0.0  0.0  19356  1612 ?        Ss   19:45   0:04 /sbin/init

root         2  0.0  0.0      0     0 ?        S    19:45   0:00 [kthreadd]

root         3  0.0  0.0      0     0 ?        S    19:45   0:00 [migration/0]

 

省略部分结果

分析说明:

USER:process是属于哪个使用者账号的

PID:process的号码

%CPU:process使用掉的CPU资源百分比

%MEM:process所占用的物理内存百分比

VSZ:process使用掉的虚拟内存量(kb)

RSS:process占用的固定的内存量(kb)

TTY:process是在哪个终端机上运行,若与终端机无关,则显示 ? ,另外,tty1-tty6表示本机上的登入者程序,若为pts/0等等,则表示为由网络接进主机的程序.

STAT:该程序目前的状态,主要状态有:R(该程序目前正在运行,或者是可被运行),S(该程序目前正在睡眠中,但可被某些讯号唤醒),T(该程序应该已经终止,但是其父进程却无法正常的终止它,造成僵死程序的状态).

START:process被触发启动的时间

TIME:process实际使用CPU运作的时间

COMMAND:该程序的实际命令.

 

 

案例7:列出类似程序树的程序显示

#ps -axjf

Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.8/FAQ

 PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND

    0     2     0     0 ?           -1 S        0   0:00 [kthreadd]

    2     3     0     0 ?           -1 S        0   0:00  \_ [migration/0]

    2     4     0     0 ?           -1 S        0   0:00  \_ [ksoftirqd/0]

    2     5     0     0 ?           -1 S        0   0:00  \_ [migration/0]

 

 

 

其他案例:

使用:

#ps -aux|more //实现分页查看

 

使用:

#ps -aux>test.txt //把所有进程显示出来,并输出到test.txt文件

 

使用:

#ps -o pid,ppid,pgrp,session,tpgid,comm//输出指定的字段

  PID  PPID  PGRP  SESS TPGID COMMAND

 1556  1554  1556  1556  1582 bash

 1582  1556  1582  1556  1582 ps

版权声明:本文为博主原创文章,未经博主允许不得转载。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!