Chinaunix

标题: 怎么查看死进程 [打印本页]

作者: bestsea    时间: 2009-06-26 17:05
标题: 怎么查看死进程
网上看到很多人在执行ps -ef命令后,看到很多如下有local=no的进程,就认为是死进程。其实这是不对的,这个local=no只是说明是远程客户端的连接进程。
  oracle  811034       1   0 10:59:20      -  0:00 oracleORCL (LOCAL=NO)
  oracle  819402       1   0 09:47:03      -  0:00 oracleORCL (LOCAL=NO)
  oracle  827620       1   0 10:10:40      -  0:00 oracleORCL (LOCAL=NO)
  oracle  835810       1   0 10:57:30      -  0:00 oracleORCL (LOCAL=NO)
  oracle  843988       1   0 09:49:16      -  0:00 oracleORCL (LOCAL=NO)
  oracle  852190       1   0 10:52:22      -  0:00 oracleORCL (LOCAL=NO)
  oracle  860378       1   0 09:33:55      -  0:00 oracleORCL (LOCAL=NO)
  oracle  868586       1   0 10:52:21      -  0:00 oracleORCL (LOCAL=NO)
  oracle  876796       1   0 11:09:29      -  0:00 oracleORCL (LOCAL=NO)
  oracle  884784       1   0 10:59:22      -  0:00 oracleORCL (LOCAL=NO)
  oracle  893164       1   0 10:42:26      -  0:00 oracleORCL (LOCAL=NO)
  oracle  909556       1   0 11:09:49      -  0:00 oracleORCL (LOCAL=NO)
  oracle  917528       1   1 11:09:53      -  0:00 oracleORCL (LOCAL=NO)
  oracle  925948       1   0 11:09:47      -  0:00 oracleORCL (LOCAL=NO)
  oracle  942326       1   0 11:07:47      -  0:00 oracleORCL (LOCAL=NO)
  oracle  950360       1   0 11:07:35      -  0:00 oracleORCL (LOCAL=NO)
  oracle  958486       1   0 11:09:39      -  0:00 oracleORCL (LOCAL=NO)
  oracle  974934       1   0 11:07:23      -  0:00 oracleORCL (LOCAL=NO)
  oracle  983294       1   0 10:48:40      -  0:00 oracleORCL (LOCAL=NO)


要查看死锁执行 ps -elf

root@ora:/home/monitor# ps -efl |pg
       F     S      UID    PID   PPID   C PRI NI ADDR    SZ    WCHAN    STIME    TTY  TIME CMD
  240001 A   oracle 860404      1   0  60 20 a9eab510 91036          02:44:06      -  0:00 ora_q001_ncdb
  250005 Z   oracle 876592 290878   0  60 20                                      0:00 <defunct>
  240401 A     root 893142 745760   0  60 20 69c27400  2352          13:47:00      -  0:00 dtwm
  200001 A     root 942262 954458   0  60 20 39e42400  1264          16:49:50  pts/0  0:00 ps -efl
  200003 A     root      1      0   0  60 20 1400   676            Jun 01      -  0:24 /etc/init
  240001 A     root  86216      1   0  60 20 1501d4400   864            Jun 01      -  0:00 /usr/sbin/srcmstr
  240001 A     root  90312 197086   0  60 20 1d049c400   696            Jun 01      -  0:00 /bin/bsh /bin/bsh /bin/bsh
  340001 A     root  94340  86216   0  39 20 b02aa400  1976 f100070f10805b40   Jun 01      -  0:43 /usr/sbin/rsct/bin/rmcd -a IBM.L

这是部分的进程,看到第二列(s STAT) 字母为A的是active 字母Z就是死进程了,并且后面还写着<defunct>死掉的,这个进程就是死进程了。
不过有的进程可以用kill杀死,有的不行,因为他有父进程,必须杀死父进程才能杀死子进程。PID是自己的进程号,PPID就是父进程进程号,上面PID号为94340的父进程号是86216;上面PID号为86216的父进程是1。如果父进程是1那就重启吧。
有错误,欢迎指正!!!

附:S stat的几个状态涵义
S
(-l 和 l 标志)进程或内核线程的状态:
对于进程:

O
不存在
A
活动
W
已交换
I
空闲(等待启动)
Z
已取消
T
已停止
对于内核线程:

O
不存在
R
正在运行
S
正在休眠
W
已交换
Z
已取消
T
已停止
作者: easybegin    时间: 2009-06-28 14:16

作者: yoyosys    时间: 2009-06-28 21:37
收藏
作者: aaaaa5aa    时间: 2009-06-29 00:47
嗯 ,来学习学习




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2