进程命令ps top

上一篇 / 下一篇  2007-11-22 13:19:35 / 个人分类:Linux

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

 

ps为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用top工具

 

kill用于杀死进程。

 

1ps的参数说明

 

ps提供了很多的选项参数,常用的有以下几个:

 

l长格式输出;

u按用户名和启动时间的顺序来显示进程;

j用任务格式来显示进程;

f用树形格式来显示进程;

 

a显示所有用户的所有进程(包括其它用户);

x显示无控制终端的进程;

r显示运行中的进程;

ww避免详细参数被截断;

 

我们常用的选项是组合是auxlax,还有参数f的应用。

 

2ps auxlax输出的解释

 

USER进程的属主;

PID进程的ID

PPID父进程;

%CPU进程占用的CPU百分比;

%MEM占用内存的百分比;

NI进程的NICE值,数值大,表示较少占用CPU时间;

VSZ进程虚拟大小;

RSS驻留中页的数量;

TTY终端ID

STAT进程状态(有以下几种)

 

D无法中断的休眠状态(通常IO的进程);

R正在运行可中在队列中可过行的;

S处于休眠状态;

T停止或被追踪;

W进入内存交换(从内核2.6开始无效);

X死掉的进程(从来没见过);

Z僵尸进程;

 

<优先级高的进程

N优先级较低的进程

L有些页被锁进内存;

s进程的领导者(在它之下有子进程);

l多进程的(使用CLONE_THREAD,类似NPTL pthreads);

+位于后台的进程组;

WCHAN正在等待的进程资源;

START启动进程的时间;

TIME进程消耗CPU的时间;

COMMAND命令的名称和参数;

 

3、应用举例

 

[root@localhost ~]# ps -aux |more

可以用|管道和more连接起来分页查看。

[root@localhost ~]# ps -aux > ps001.txt

[root@localhost ~]# more ps001.txt

这里是把所有进程显示出来,并输出到ps001.txt文件,然后再通过more来分页查看。

 

4kill终止进程

 

有十几种控制进程的方法,下面是一些常用的方法:

kill -STOP [pid]

发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。

kill -CONT [pid]

发送SIGCONT (19,18,25)重新开始一个停止的进程。

kill -KILL [pid]

发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。

kill -9 -1

终止你拥有的全部进程。

SIGKILLSIGSTOP信号不能被捕捉、封锁或者忽略,但是,其它的信号可以。所以这是你的终极武器。

ps a显示现行终端机下的所有程序,包括其他用户的程序。
    2ps -A显示所有程序。
    3ps c列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。

    4ps -e此参数的效果和指定"A"参数相同。

    5ps e列出程序时,显示每个程序所使用的环境变量。

    6ps fASCII字符显示树状结构,表达程序间的相互关系。

    7ps -H显示树状结构,表示程序间的相互关系。

    8ps -N显示所有的程序,除了执行ps指令终端机下的程序之外。

    9ps s采用程序信号的格式显示程序状况。

    10ps S列出程序时,包括已中断的子程序资料。

    11ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。

    12ps u 以用户为主的格式来显示程序状况。

    13ps x 显示所有程序,不以终端机来区分。

  最常用的方法是ps -aux,然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。 

 

.top命令的作用
top命令用来显示执行中的程序进程和其他状况,使用权限是所有用户;top命令提供了实时的对系统处理器的状态监视,如果在前台执行该命令,它将独占前台,直到用户终止该程序为止;该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.
2. 使用参数说明
d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
n:显示更新的次数,完成后将会退出top
3. 交互命令:
[Space] 立即刷新显示
[h] 显示帮助屏幕
[k] 杀死某进程。你会被提示输入进程 ID 以及要发送给它的信号。 一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。
[n] 改变显示的进程数量。你会被提示输入数量。
[u] 按用户排序。
[M] 按内存用量排序。
[o][O] 改变显示项目的顺序。
[P] 根据CPU使用百分比大小进行排序。
[T] 根据时间/累计时间进行排序。
[Ctrl+L] 擦除并且重写屏幕。
[q] 退出程序。
[r] 重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。
[S] 切换到累计模式。
[s] 改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位为s。如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s。需要注意的是如果设置太小的时间,很可能会引起不断刷新,从而根本来不及看清显示的情况,而且系统负载也会大大增加。

4. 显示说明
======================================================================
17:31:42 up 18 days, 23:38, 1 user, load average: 0.00, 0.00, 0.00
当前时间 系统运行时间 当前用户数 平均负责(1、5、10分钟)
======================================================================
94 processes: 93 sleeping, 1 running, 0 zombie, 0 stopped
进程总数 休眠进程数 运行进程数 僵死进程数 终止进程数
======================================================================
CPU states: cpu user nice system irq softirq iowait idle
total 0.0% 0.0% 0.1% 0.0% 0.0% 0.0% 99.8%
cpu00 0.0% 0.0% 0.3% 0.0% 0.0% 0.0% 99.6%
cpu01 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 100.0%
cpu状态 用户占用 优先.. 系统.. 中断 软中断 ?? 空闲
======================================================================
Mem: 3094664k av, 2627700k used, 466964k free, 0k shrd, 120776k buff
1434068k actv, 155972k in_d, 41624k in_c
Swap: 2048248k av, 130068k used, 1918180k free 1319416k cached
内存使用情况:可用内存,已使用内存,空闲内存.......
swap情况:
=======================================================================
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
9590 root 25 0 172M 172M 11740 S 4.3 5.7 0:17 0 java
PID 每个进程的ID
USER 进程所有者的用户名
PRI 每个进程的优先级别
NI 每个优先级的值
SIZE 进程的代码大小加上数据大小再加上堆栈空间大小的总数,单位是KB
RSS 进程占用的物理内存的总数量,单位是KB
SHARE 进程使用共享内存的数量
STAT 进程的状态。其中S代表休眠状态;D代表不可中断的休眠状态;R代表运行状态;Z代表僵死状态;T代表停止或跟踪状态
%CPU 进程自最近一次刷新以来所占用的CPU时间和总时间的百分比
%MEM 进程占用的物理内存占总内存的百分比
TIME 进程自启动以来所占用的总CPU时间
CPU CPU标识
COMMAND 进程的命令名称

 


TAG: Linux

 

评分:0

我来说两句

Open Toolbar