Chinaunix首页 | 论坛 | 博客
  • 博客访问: 344296
  • 博文数量: 59
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 646
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-14 12:09
文章分类

全部博文(59)

文章存档

2009年(2)

2008年(57)

我的朋友

分类: LINUX

2008-08-17 09:37:14

1、ps 进程状态查询命令。
命令格式#ps [[选项]]  
常用选项:


    * -a,显示任何用户进程。
    * -e,显示进程环境变量。
    * -l,给出长列表。
    * -r,只显示正在运行的进程。
    * -S,增加CPU时间和页面出错。
    * -w,按宽格式显示输出。默认情况下,假如输出结果不能在一行里显示,将会缩短结果输出。使用这个选项能够避免这个问题
    * -txx,只显示受tty.xx控制的进程。
    * -u,打印用户格式,显示用户名和进程的起始时间。
    * -x,显示不带控制终端的进程。


命令使用说明:
例子:
例A:分页显示任何的进程,同时显示进程的用户名和起始时间。命令如下:
#ps -axu | more
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
root         1  0.2  0.1  1388  492 ?        S    22:06   0:04 init
root         2  0.0  0.0     0    0 ?        SW   22:06   0:00 [keventd]
root         3  0.0  0.0     0    0 ?        SWN  22:06   0:00 [ksoftirqd/0]
root         4  0.0  0.0     0    0 ?        SW   22:06   0:00 [kswapd]
root         5  0.0  0.0     0    0 ?        SW   22:06   0:00 [bdflush]
root         6  0.0  0.0     0    0 ?        SW   22:06   0:00 [kupdated]
root         8  0.0  0.0     0    0 ?        SW   22:06   0:00 [kjournald]
root      1077  0.0  0.1  1360  400 tty4     S    22:09   0:00
/sbin/mingetty tty4
root      1078  0.0  0.1  1360  400 tty5     S    22:09   0:00
/sbin/mingetty tty5
root      1079  0.0  0.1  1360  400 tty6     S    22:09   0:00
/sbin/mingetty tty6
........
ps命令输出字段的含义:


    * USER,进程任何者的用户名。
    * PID,进程号,能够唯一标识该进程。
    * %CPU,进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。
    * %MEM,进程使用内存的百分比。
    * VSZ,进程使用的虚拟内存大小,以K为单位。
    * RSS,进程占用的物理内存的总数量,以K为单位。
    * TTY,进程相关的终端名。
    * STAT,进程状态,用(R--运行或准备运行;S--睡眠状态;I--空闲;Z--冻结;D--不间断睡眠;W-进程没有驻留页;T停止或跟踪。)这些字母来表示。
    * START,进程开始运行时间。
    * TIME,进程使用的总CPU时间。
    * COMMAND,被执行的命令行。


2、kill 结束进程命令。
命令格式:#kill [[选项]] [[信号]]
常用选项:


    * -s,指定需要送出的信号。既能够是信号名也能够对应数字。
    * -p,指定kill命令只是显示进程的PID,并不真正送出结束信号。
    * -l,打印能够用kill送的信号名表,能够在/usr/include/linux/signal.h文档中找到。


[[信号]]
送入可选信号,默认值是SIGTERM,其他常用的两个值是---SIGHUP(是调制解调器通过电话挂起的设备)和SIGKILL(不能被
进程忽略)。
命令使用说明:
用这个命令来结束正在运行的程式,能够达到windows下“任务管理器”的功效。特别是在某一进程运行老是没什么结果出
现象死机相同的时候,可能这个命令杀到那个进程,使系统恢复正常。
例子:
例A:杀掉上例A中的cupsd进程。命令如下:
#kill 945
例B:显示kill的任何信号。
#kill -l
1) SIGHUP         2) SIGINT         3) SIGQUIT         4) SIGILL
5) SIGTRAP         6) SIGABRT         7) SIGBUS         8) SIGFPE
9) SIGKILL        10) SIGUSR1        11) SIGSEGV        12) SIGUSR2
13) SIGPIPE        14) SIGALRM        15) SIGTERM        17) SIGCHLD
18) SIGCONT        19) SIGSTOP        20) SIGTSTP        21) SIGTTIN
22) SIGTTOU        23) SIGURG        24) SIGXCPU        25) SIGXFSZ
26) SIGVTALRM        27) SIGPROF        28) SIGWINCH        29) SIGIO
30) SIGPWR        31) SIGSYS        35) SIGRTMIN        36) SIGRTMIN+1
37) SIGRTMIN+2        38) SIGRTMIN+3        39) SIGRTMIN+4        40) SIGRTMIN+5
41) SIGRTMIN+6        42) SIGRTMIN+7        43) SIGRTMIN+8        44) SIGRTMIN+9
45) SIGRTMIN+10        46) SIGRTMIN+11        47) SIGRTMIN+12        48) SIGRTMIN+13
49) SIGRTMIN+14        50) SIGRTMAX-14        51) SIGRTMAX-13        52) SIGRTMAX-12
53) SIGRTMAX-11        54) SIGRTMAX-10        55) SIGRTMAX-9        56) SIGRTMAX-8
57) SIGRTMAX-7        58) SIGRTMAX-6        59) SIGRTMAX-5        60) SIGRTMAX-4
61) SIGRTMAX-3        62) SIGRTMAX-2        63) SIGRTMAX-1


linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

ps工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct ("zombie") process


注: 其它状态还包括W(无驻留页), <(高优先级进程), N(低优先级进程), L(内存锁页).


使用ps格式输出来查看进程状态:
ps -eo user,stat..,cmd


user          用户名
uid           用户号
pid           进程号
ppid          父进程号
'size'          内存大小, Kbytes字节.
v'size'         总虚拟内存大小, bytes字节(包含code+data+stack)
share         总共享页数
nice          进程优先级(缺省为0, 最大为-20)
priority(pri) 内核调度优先级
pmem          进程分享的物理内存数的百分比
trs           程序执行代码驻留大小
rss           进程使用的总物理内存数, Kbytes字节
time          进程执行起到现在总的CPU暂用时间
stat          进程状态
cmd(args)     执行命令的简单格式


例子:
查看当前系统进程的uid,pid,stat,pri, 以uid号排序.
ps -eo pid,stat,pri,uid --sort uid


查看当前系统进程的user,pid,stat,rss,args, 以rss排序.
ps -eo user,pid,stat,rss,args --sort rss
阅读(1903) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~