问题标签 [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.
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
?
非常感谢你的帮助!
iphone - 内存泄漏与僵尸 - iPhone
我的 iPhone 应用程序由于僵尸或内存泄漏而崩溃。我已将其缩小到 3 行代码,并且可以通过注释/取消注释代码可靠地实现这两件事之一。当在结果列表(tableView)和包含地图和一些标签的详细信息页面之间导航时会出现错误,当我第一次从地图导航回结果列表时发生内存泄漏,僵尸可能在 5/ 之后发生6 次导航到不同的结果并返回。
linux - 如何通过 shell 脚本杀死 linux defunct 进程
在我的服务器机器中,每天都有一些进程进入失效状态。它会影响我的 CPU 使用率。需要编写一个shell脚本来杀死已失效的进程ID和父ID。
例如,当我运行命令时:
找到可能的值。在那我只需要杀死“[chrome] defunct”进程。
样本条目:-
我需要杀死这种类型的 chrome 条目。任何人都可以建议一些样本来杀死条目
c - 分叉、共享变量和处理僵尸进程
我正在为一些需要分叉的作业编写程序,但我对共享变量和处理僵尸进程有点不清楚。
如果我有全局变量,父级和所有子级是否使用这些全局变量的相同“副本”?如果没有,有什么办法可以让他们(
vfork
?)?我知道僵尸进程是什么,但我不清楚如何摆脱它们。我的程序将分离出许多临时进程,所以我不知道我可以
wait()
单独处理每个进程。当父进程终止时,它会清除与之相关的所有僵尸,对吗?如果父母在孩子之前终止怎么办?孩子完成后会留下一个僵尸吗(这些是init()
定期清除的)吗?可能完全回避问题 2,因为我实际上并不关心子进程的结果,有没有办法让他们根本不留下僵尸?我看到了一些东西,
signal(SIGCHLD, SIG_IGN)
但我不确定如何使用它,而且我发现它的联机帮助页有些迟钝。
c - ps 中的僵尸线程(用于用 c 编写的线程程序)
恐怕我不确定我在这里做错了什么。我有一个线程应用程序,它在启动时启动 3 个线程
然后在待机模式下等待来自串行的命令。在它运行并返回待机模式后,我用 ps 检查发生了什么;有应用程序的僵尸实例(文件名也是 sq.bracketed)
其中大约 628 个。
事情是,我遵循的政策是:
- 对于可分离线程 - 不在乎(它们将在完成后自行退出并释放资源)
- 对于可连接线程 - 我在运行 pthread_create 后运行 pthread_join 并等待线程函数完成。像这样:
我只在 main 中运行 pthread_exit(NULL) ,它并没有做太多事情,并且在启动之后只是因为它不能被杀死而存在。
我可能在这里忘记了一些重要的事情。但在阅读了一些关于线程的基本指南后无法澄清什么......
谢谢您的帮助
r - 使用并行包删除僵尸进程
在我基于 Debian 的机器上使用 R 的并行包玩了一段时间后,我仍然找不到在计算后删除所有僵尸子进程的方法。
我正在寻找通用且独立于操作系统的解决方案。
下面是一个简单的脚本,说明了 2 个内核的问题:
不幸的是,这个脚本在进程表中留下了两个僵尸进程,只有在 R 关闭时才会被杀死。
iphone - TreasureList tableView 期间出现僵尸错误:didSelectRowAtIndexPath
我正在开发一个在表格视图中列出一些项目的 iPhone 应用程序。单击项目时,我遇到了事件TreasureList tableView:didSelectRowAtIndexPath的错误。我对这个错误感到困惑。错误是
[TreasureList tableView:didSelectRowAtIndexPath:]: message sent to deallocated instance 0x7ce0020
代码如下:
还请让我知道如何调试信息“deallocated instance 0x7ce0020”
我正在通过以下方式将数据添加到 tableivew。
c - 在内核中处理线程的正确方法?
我已经看到了一些零散的信息,但我似乎无法得到一个最终答案。你如何清理内核中的僵尸线程?
为了确保并产生处理内核线程的最终正确方法,我想更广泛地提出这个问题。如何在 Linux 内核中创建、终止和清理线程?
我到目前为止是这样的:
我发现最接近清理解决方案的是release_task,但我没有找到任何谈论它的地方。我想既然线程函数是kthread_create
等kthread_run
,应该有一个kthread_join
or kthread_wait
,但没有。do_wait
似乎也有可能,但不需要struct task_struct *
.
此外,我不确定这是否do_exit
是一个好主意,或者是否有必要。有人可以提出如何创建、终止和清理 kthread 的最小草图吗?
websocket - Tornado 的 websocket 实现如何查找和关闭僵尸 websocket?
假设浏览器被强制终止,并且没有关闭消息发送到 Tornado 服务器。Tornado 怎么知道(或者它甚至知道?)这个连接已经在客户端被终止了?查看Tornado websocket 代码对我来说并不明显。
我问是因为我曾经有几分钟没有调用服务器端 on_close 方法(可能是因为客户端未能发送其关闭消息),但是 Tornado 似乎注意到客户端已经消失并关闭了插座本身。
有什么见解吗?
c++ - pthread_join 失败会导致子进程成为僵尸吗?
我有一个使用 Popen 调用 shell 脚本的 C++ pthread 线程。
在一种情况下观察到的是 pthread_join 失败被捕获(即 pthread_join != 0)并且子进程保持为僵尸(根据 ps 输出)。
这也会导致主程序挂起。
现在,我不知道为什么 pthread_join 会失败,因为它在其他情况下从未发生过。
但是我想知道收集Popen产生的子进程的等待状态是否是thread_join的一部分。如果是这样,至少我可以确定加入失败是僵尸和程序挂起的根本原因..
提前致谢..