defunct
eyucham
这个作者很懒,什么都没留下…
展开
-
linux僵尸进程产生的原因以及如何避免产生僵尸进程<defunct>
给进程设置僵尸状态的目的是维护子进程的信息,以便父进程在以后某个时间获取。这些信息包括子进程的进程ID、终止状态以及资源利用信息(CPU时间,内存使用量等等)。如果一个进程终止,而该进程有子进程处于僵尸状态,那么它的所有僵尸子进程的父进程ID将被重置为1(init进程)。继承这些子进程的init进程将清理它们(init进程将wait它们,从而去除僵尸状态)。 但通常情况下,我们是...转载 2018-08-27 14:58:15 · 9301 阅读 · 0 评论 -
linux下僵尸进程(Defunct进程)的产生与避免
在测试基于 DirectFB+Gstreamer 的视频联播系统的一个 Demo 的时候,其中大量使用 system 调用的语句,例如在 menu 代码中的 system("./play") ,而且多次执行,这种情况下,在 ps -ef 列表中出现了大量的 defunct 进程,对程序的运行时有害的。按说system的源码中应该已经包含了wait,但也不能排除开发板上这个版本的system中可能没...转载 2018-08-27 15:03:18 · 1320 阅读 · 0 评论 -
处理SIGCHLD信号
在上一讲中,我们使用fork函数得到了一个简单的并发服务器。然而,这样的程序有一个问题,就是当子进程终止时,会向父进程发送一个SIGCHLD信号,父进程默认忽略,导致子进程变成一个僵尸进程。僵尸进程一定要处理,因为僵尸进程占用内核中的空间,耗费进程资源。这里通过signal函数处理信号。1、信号是啥?信号(signal)就是告知某个进程发生了某个事件的通知,有时也叫软件中断(softwar...转载 2018-10-09 11:02:12 · 4008 阅读 · 0 评论