application bug:has SIGCHLD set to SIG_IGN but calls wait()
在一台Linux机器的系统日志会见到如下错误日志:
kernel: application bug: 程序名(行号) has SIGCHLD set to SIG_IGN but calls wait()
通常SIGCHLD信号是在子进程结束时,内核向父进程发送的信号,正常情况下,父进程调用wait函数收集子进程的状态信息,释放子进程资源。
对于一些并发服务器,常常fork很多子进程,为了省事,直接将此SIGCHLD信号的处理方式设为忽略,可让内核把僵尸子进程转交给init进程去处理,省去了大量僵尸进程占用系统资源。如果在这种情况下,仍然调用wait就会产生此错误.