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

简介

linux上进程有以下种状态:

  •   R  可运行状态:此时进程正在运行或者正在运行队列中等待准备运行
  •   等待状态(阻塞状态):此时进程在等待一个事件的发生或某种系统资源。在Linux系统中等待状态又细分为两种等待状态:可中断的等待状态和不可中断的等待状态。
        S 可中断的等待状态:处于可中断的等待状态的进程可以被某一信号中断
        D 不可中断的等待状态:处于不可中断的等待状态的进程不受信号的打扰,将一直等待事件的发生或等待某种系统资源
  •   T 暂停状态或跟踪状态:处于暂停状态的进程被暂停运行
  •   Z 僵死状态:每个进程在运行结束后都会处于僵死状态,等待父进程调用进而释放系统资源,处于该状态的进程已经运行结束,但是它的父进程还没有释放其系统资源。
  •   X 退出状态:进程即将被销毁。

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

  • R:可运行状态
  • S:可中断的等待状态
  • D:不可中断的等待状态
  • T:暂停状态
  • Z:僵死状态

 

ps常用命令

1.  ps -aux

 如果想查看包含其他使用者的进程,和PID,CPU占有率,记忆体使用情况,运行状态等,可以输入

[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.6 127964  6532 ?        Ss   17:13   0:02 /usr/lib/syste
root          2  0.0  0.0      0     0 ?        S    17:13   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   17:13   0:00 [kworker/0:0H]
root          5  0.0  0.0      0     0 ?        S    17:13   0:00 [kworker/u256:
root          6  0.0  0.0      0     0 ?        S    17:13   0:00 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    17:13   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    17:13   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        R    17:13   0:00 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   17:13   0:00 [lru-add-drain
...

USER:进程拥有者,示例中是root。
PID:进程ID,用户ID为UID,父进程ID为PPID
%CPU:占用的CPU使用率,ID号为1的进程为0
%MEM:占用的物理内存百分比,ID号为1的进程为0
VSZ:占用的虚拟内存量,ID号为1的进程为194184
RSS:占用的固定的内存量,ID号为1的进程为6536
TTY:终端的次要装置号码(minor device number of tty),示例中的TTY列都是“?”,是表示这些进程不属于任何TTY,因为它们是由系统启动的,tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT:该进程的状态,有下一个板块的几个状态,D,R,S,T,Z是ps指令标识进程的5种状态码
TIME:进程已消耗的CPU时间
CMD:启动进程的命令

2. ps -ef

当前所有的进程。包括显示创建进程的用户标识uid, 进程标识pid, 父进程标识ppid, 创建时间,所执行程序,可以用ps -ef

CentOS中ps配合Kill进程的N种方法 linux ps 进程状态_父进程

3. ps lax

ps lax可以提供进程ID,父进程PPID,谦让度和等待的资源

CentOS中ps配合Kill进程的N种方法 linux ps 进程状态_父进程_02

其中

NI:谦让度

WCHAN:正在等待的进程资源

 

其他参数:

1.-A: 将所有的进程都显示出来,和-e的效果相同,节选如下图:

CentOS中ps配合Kill进程的N种方法 linux ps 进程状态_等待状态_03

2.-a: 显示现行终端机下的所有程序,包括其他用户的程序,节选如下图:

CentOS中ps配合Kill进程的N种方法 linux ps 进程状态_父进程_04

3.-u: 以用户为主的格式来显示进程的详细状态,节选如下图:

CentOS中ps配合Kill进程的N种方法 linux ps 进程状态_等待状态_05

4.-x: 显示没有控制终端的进程,节选如下图:

CentOS中ps配合Kill进程的N种方法 linux ps 进程状态_父进程_06

5.-r: 只显示正在运行的程序

CentOS中ps配合Kill进程的N种方法 linux ps 进程状态_等待状态_07

6.e: 列出程序时,显示出每个程序的环境变量

CentOS中ps配合Kill进程的N种方法 linux ps 进程状态_系统资源_08

 

 

如果需要查找某一个特定的进程,可以把ps和grep一起用

ps -aux|grep Oracle,查找Oracle的进程

或者在grep后输入进程ID可以查看有关进程,如图:

CentOS中ps配合Kill进程的N种方法 linux ps 进程状态_系统资源_09