【C/C++】多进程:僵尸进程
一个僵尸进程产生的过程是:父进程调用fork创建子进程后,子进程运行至其终止。进程终止后有些信息对于父进程和内核还是很有用的,例如进程的ID号、进程的退出状态、进程运行的CPU时间等。因此进程运行终止后,系统会回收所有内核分配给它的内存、关闭它所打开的文件等,但是还会保留以上极少的信息,以供父进程使用,系统会向父进程发送SIGCHLD
信号,父进程应及时调用wait
函数来为子进程收尸,做一些收尾工作。但如果父进程没有及时调用wait
函数,则子进程的进程状态变成ZOMBIE
,即僵尸进程
。僵尸进程
会一起占用内存且无法通过使用kill
杀死清除,除非父进程随后调用wait
函数或父进程也运行结束或其它因素父进程被杀终结等,僵尸进程
才会被回收。