假设我在子进程和父进程之间创建了一个管道,并且子进程正常结束,子进程的管道会自动关闭吗?
此外,如果子进程也有子进程并且子进程以分段错误结束,它是否也会终止我的孙进程?我的意思是从流程表中删除它(我不需要等待它)。
编辑: 例如,对于以下代码,我在子进程中生成分段错误,并尝试在父进程中等待它。运行程序后,waitpid返回-1,但是当我检查WIFEXITED(状态)时,似乎子进程程序正常退出。 我得到了一个
杀死子进程失败:没有这样的进程
错误尝试杀死我的孙子进程。我想知道这是因为分段错误会自动关闭子孙进程吗?
<script src="js_vrt/jquery-1.10.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(window).load(function() {
var images = ['img_vrt/pozadine/1p.jpg', 'img_vrt/pozadine/2p.jpg', 'img_vrt/pozadine/3p.jpg', 'img_vrt/pozadine/4p.jpg'];
var image = $('#pozad');
var i = Math.floor((Math.random() * images.length));
var ist;
//Initial Background image setup
image.css('background-image', 'url(' + images[i++] + ')');
//Change image at regular intervals
setInterval(function() {
image.fadeOut(1500, function() {
image.css('background-image', 'url(' + images[i++] + ')');
image.fadeIn(1500);
});
if (i == images.length)
i = 0;
}, 5000);
});
</script>
答案 0 :(得分:4)
操作系统将关闭与已死亡或退出的进程关联的所有文件描述符。如果它关闭指向管道读取端的最后一个filedescriptor,那么写入写入端将开始生成SIGPIPE(fds是对它们后面的vnode实体的引用计数引用)。
如果父母去世,其子女将被重新归属init
。 init
会等待它。 (无论如何,祖父母不能wait
孙子孙女。