AIX僵死(defunct)进程故障分析
2008-09-06 08:20:53 来源:WEB开发网故障描述:
S80主机系统出现了大量的僵死(defunct)进程,由于这些进程不能自动终止,导致系统的进程数资源不能释放,因此,如果继续增多,到达系统设定的进程总数,用户的应用和生产将受到影响。
故障分析:
在AIX操作系统中,任何进程的结束或终止将会通报其父进程(parent process),父进程会收集子进程的状态信息,并使子进程完全结束。如果父进程不能及时完整地收集该进程的状态信息,则即使子进程结束,系统也会产生一个相同进程号的defunct进程。由于defunct进程对应的进程实际上已经结束,因此,使用kill –9等方法也无法清除干净。
仔细观察S80系统中的defunct进程,进程用户多为root用户,少数为ORACLE用户,但绝大部分进程的父进程号为1,这表明父进程为系统初始化(init) 进程。经查询IBM系统资料库,指明:系统起机后,如果/etc/inittab文件未被init进程完全执行完,则系统很可能产生defunct进程,因为init进程有可能在等待某些特定进程的运行而不理会其他子进程的结束,从而导致defunct进程的产生。
仔细查看系统/etc/inittab文件,发现存在如下语句:
welcome:2:wait:/usr/lib/assist/welcome.launch
该语句将导致/etc/inittab中其后的语句未能完全运行,因此,需要清除或屏蔽掉该语句。
故障解决:
删除/etc/inittab中welcome语句,并重新执行/etc/inittab,系统中的defunct进程被清除,系统进程数被释放,恢复至正常状态。
如下为操作命令:
#cp /etc/inttab /etc/inittab.bak
#rmitab welcome
#telinit q
#ps -ef|grep welcome (to find the ‘welcome’ pid#)
#kill #pid
#telinit q
赞助商链接