问题标签 [zombie-process]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
197 浏览

objective-c - 由于 NSMutableArray 中的内存管理,Objective-C 对象消失了

在将对象添加到NSMutableArray. 奇怪的是,我添加的前 8 个对象一切正常,但是当添加第 9 个对象时,应用程序在检索该对象时崩溃。

这是在几个不同文本的地方进行的。但是这个对象包含我在UITableView.

notify委托的方法中,我将UploadStatus对象添加到NSMutableArray并重新加载UITableView显示该数组内的对象。

前 8 次我将UploadStatus对象添加到数组并重新加载表,它显示正确。但是第 9 次我收到错误[CFString retain]: message sent to deallocated instance 0x5c655c0。在方法中重新加载表时会发生此错误cellForRowAtIndexPath

奇怪的是,它总是显示里面的对象NSMutableArray超出范围,就像这个截图一样:

在此处输入图像描述

尽管如此,如果我获取项目,将其转换为UploadStatus类并从中获取status,一切都会顺利进行(对于前 8 个对象)。

UploadStatus有没有人知道为什么在将第 9 个对象添加到后会出错NSMutableArray

非常感谢你的帮助!

0 投票
2 回答
480 浏览

iphone - 内存泄漏与僵尸 - iPhone

我的 iPhone 应用程序由于僵尸或内存泄漏而崩溃。我已将其缩小到 3 行代码,并且可以通过注释/取消注释代码可靠地实现这两件事之一。当在结果列表(tableView)和包含地图和一些标签的详细信息页面之间导航时会出现错误,当我第一次从地图导航回结果列表时发生内存泄漏,僵尸可能在 5/ 之后发生6 次导航到不同的结果并返回。

0 投票
2 回答
12700 浏览

linux - 如何通过 shell 脚本杀死 linux defunct 进程

在我的服务器机器中,每天都有一些进程进入失效状态。它会影响我的 CPU 使用率。需要编写一个shell脚本来杀死已失效的进程ID和父ID。

例如,当我运行命令时:

找到可能的值。在那我只需要杀死“[chrome] defunct”进程。

样本条目:-

我需要杀死这种类型的 chrome 条目。任何人都可以建议一些样本来杀死条目

0 投票
2 回答
2204 浏览

c - 分叉、共享变量和处理僵尸进程

我正在为一些需要分叉的作业编写程序,但我对共享变量和处理僵尸进程有点不清楚。

  1. 如果我有全局变量,父级和所有子级是否使用这些全局变量的相同“副本”?如果没有,有什么办法可以让他们(vfork?)?

  2. 我知道僵尸进程是什么,但我不清楚如何摆脱它们。我的程序将分离出许多临时进程,所以我不知道我可以wait()单独处理每个进程。当父进程终止时,它会清除与之相关的所有僵尸,对吗?如果父母在孩子之前终止怎么办?孩子完成后会留下一个僵尸吗(这些是init()定期清除的)吗?

  3. 可能完全回避问题 2,因为我实际上并不关心子进程的结果,有没有办法让他们根本不留下僵尸?我看到了一些东西,signal(SIGCHLD, SIG_IGN)但我不确定如何使用它,而且我发现它的联机帮助页有些迟钝。

0 投票
1 回答
453 浏览

c - ps 中的僵尸线程(用于用 c 编写的线程程序)

恐怕我不确定我在这里做错了什么。我有一个线程应用程序,它在启动时启动 3 个线程

然后在待机模式下等待来自串行的命令。在它运行并返回待机模式后,我用 ps 检查发生了什么;有应用程序的僵尸实例(文件名也是 sq.bracketed)

其中大约 628 个。

事情是,我遵循的政策是:

- 对于可分离线程 - 不在乎(它们将在完成后自行退出并释放资源)

- 对于可连接线程 - 我在运行 pthread_create 后运行 pthread_join 并等待线程函数完成。像这样:

我只在 main 中运行 pthread_exit(NULL) ,它并没有做太多事情,并且在启动之后只是因为它不能被杀死而存在。

我可能在这里忘记了一些重要的事情。但在阅读了一些关于线程的基本指南后无法澄清什么......

谢谢您的帮助

0 投票
2 回答
7614 浏览

r - 使用并行包删除僵尸进程

在我基于 Debian 的机器上使用 R 的并行包玩了一段时间后,我仍然找不到在计算后删除所有僵尸子进程的方法。

我正在寻找通用且独立于操作系统的解决方案。

下面是一个简单的脚本,说明了 2 个内核的问题:

不幸的是,这个脚本在进程表中留下了两个僵尸进程,只有在 R 关闭时才会被杀死。

0 投票
1 回答
109 浏览

iphone - TreasureList tableView 期间出现僵尸错误:didSelectRowAtIndexPath

我正在开发一个在表格视图中列出一些项目的 iPhone 应用程序。单击项目时,我遇到了事件TreasureList tableView:didSelectRowAtIndexPath的错误。我对这个错误感到困惑。错误是

[TreasureList tableView:didSelectRowAtIndexPath:]: message sent to deallocated instance 0x7ce0020

代码如下:

还请让我知道如何调试信息“deallocated instance 0x7ce0020”

我正在通过以下方式将数据添加到 tableivew。

0 投票
1 回答
14220 浏览

c - 在内核中处理线程的正确方法?

我已经看到了一些零散的信息,但我似乎无法得到一个最终答案。你如何清理内核中的僵尸线程?

为了确保并产生处理内核线程的最终正确方法,我想更广泛地提出这个问题。如何在 Linux 内核中创建、终止和清理线程?

我到目前为止是这样的:

我发现最接近清理解决方案的是release_task,但我没有找到任何谈论它的地方。我想既然线程函数是kthread_createkthread_run,应该有一个kthread_joinor kthread_wait,但没有。do_wait似乎也有可能,但不需要struct task_struct *.

此外,我不确定这是否do_exit是一个好主意,或者是否有必要。有人可以提出如何创建、终止和清理 kthread 的最小草图吗?

0 投票
1 回答
517 浏览

websocket - Tornado 的 websocket 实现如何查找和关闭僵尸 websocket?

假设浏览器被强制终止,并且没有关闭消息发送到 Tornado 服务器。Tornado 怎么知道(或者它甚至知道?)这个连接已经在客户端被终止了?查看Tornado websocket 代码对我来说并不明显。

我问是因为我曾经有几分钟没有调用服务器端 on_close 方法(可能是因为客户端未能发送其关闭消息),但是 Tornado 似乎注意到客户端已经消失并关闭了插座本身。

有什么见解吗?

0 投票
1 回答
859 浏览

c++ - pthread_join 失败会导致子进程成为僵尸吗?

我有一个使用 Popen 调用 shell 脚本的 C++ pthread 线程。

在一种情况下观察到的是 pthread_join 失败被捕获(即 pthread_join != 0)并且子进程保持为僵尸(根据 ps 输出)。

这也会导致主程序挂起。

现在,我不知道为什么 pthread_join 会失败,因为它在其他情况下从未发生过。

但是我想知道收集Popen产生的子进程的等待状态是否是thread_join的一部分。如果是这样,至少我可以确定加入失败是僵尸和程序挂起的根本原因..

提前致谢..