这两天cacti老是报警,说是本机的进程数已经超过设定的阀值,我用的是solaris系统,用ps -ef 查看系统的信息,果然发现,除了那些正常的进程之外,还有一些nagios引起的僵尸进程,其数量就有几千个,如下

nagios    13236   19877   0                      -  ?                    0:00   <defunct>

nagios    29534   19877   0                      -  ?                    0:00   <defunct>

nagios    13665   19877   0                      -  ?                    0:00   <defunct>

nagios    13252   19877   0                      -  ?                    0:00   <defunct>

……

……

……

解决思路:kill `ps -ef |grep defunct |awk '{print $2}'`   //直接把所有的defunct的pid杀掉

但未果。看来是父进程惹的祸,好找他的父亲,把它父亲干掉,他小子也就over了.考虑到之前可能是因为搭建了nagios服务,好,先停掉nagios服务,但也未果。

解决办法:

#ps -ef  |grep nagios  //查看进程,发现里面有个PPID选项(上面的19877),对这个就是他的父进程.

#kill --PPID //杀掉他的父进程,这里是kill 19877

结果是所有的PPID都变成了1,

#kill 1

然后直接重启nagios服务

#/etc/init.d/nagios stop

#/etc/init.d/nagios start

问题解决。