Solaris 10 init无法获得僵尸进程

ps目前显示17617僵尸进程,所有这些进程都有1 / init的ppid。 初始化应该收获这些已经停止的进程,但不是由于某种原因。 不存在的进程数量正在增长。

试图强制他们使用preap收获失败:

 preap: Failed to reap 15977: the only non-defunct ancestor is 'init' 

顺便说一下,我如何计算进程:

 % ps -e -o pid,s,ppid | awk 'index($2,"Z")>0 {ppid[$3]=ppid[$3]+1} END {for (key in ppid) print key,ppid[key]}' 1 17617 

我发现这个令人不安的日志条目:

 Jun 20 22:45:34 host genunix: [ID 470503 kern.warning] WARNING: Sorry, no swap space to grow stack for pid 1 (init) 

OS是Solaris 10( SunOS host 5.10 Generic_150401-04 i86pc i386 i86pc )。

原来,init已经停止了正常工作,可能是系统在交换时遇到了I / O问题。

事实certificate,如果init在closures操作系统的过程之外退出,它将会重启。 所以我发送了一个SIGSEGV(确保它不会模仿它,但是它确定closures正在进行),它重新启动了init(仍然是pid 1),并且新的init立刻收获了所有这些优秀的僵尸。

但是,我应该重新启动以清除由于交换I / O问题而可能存在的其他问题。