这两天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
问题解决。