进程列表

列出进程中最重要的命令便是进程状态命令: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: ps与grep经常使用组合使用方法,查找特定进程

命令:

#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

最新文章

  1. redis 快速入门(win7)
  2. iframe的自适应
  3. Android 保持Service不被Kill掉的方法--双Service守护 &amp;&amp; Android实现双进程守护
  4. 回车键Enter
  5. android的进度条使用
  6. Muduo 网络编程示例之零:前言
  7. JQuery 事件及案例
  8. 201521123029《Java程序设计》第十三周学习总结
  9. 【转】RAID 简介
  10. Mysql Innodb 锁机制
  11. 安卓开发笔记(二十五):ViewPager的使用
  12. Python--day14(迭代器)
  13. tensorFlow入门实践(二)模块化
  14. 云主机中毒 cpu爆满解决日志
  15. 智能制造(MES)四大阶段
  16. Tomcat配置Manager管理员
  17. 外观模式Facade pattern
  18. Oracle 锁的概念
  19. 舞蹈链(DLX)
  20. memory prefix hypo,hecto,hyper out1

热门文章

  1. 【NOIP2018】 游记
  2. POJ 1330 Tarjan LCA、ST表(其实可以数组模拟)
  3. Dijkstra TYVJ 1031热浪 Dijkstra测试数据
  4. 总结java基础
  5. max-age 和 Expires
  6. Android 侦听应用(Package)变化的方法侦听广播
  7. Caffe: gflag编译出现问题汇总
  8. dispatch_sync
  9. Mysql 之实现多字段模糊查询
  10. DD打卡