AIX僵死(defunct)进程故障分析

来源:岁月联盟 编辑:zhu 时间:2008-01-11
AIX僵死(defunct)进程故障分析内容简介:【aix教程】故障描述: S80主机系统出现了大量的僵死(defunct)进程,由于这些进程不能自动终止,导致系统的进程数资源不能释放,因此,假如继续增多,到达系统设定的进程总数,用户的应用和生产将受到影响。 故

  【aix教程】故障描述:

  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

图片内容