gpt4 book ai didi

Xcode 在运行 iOS 测试/模拟器后离开僵尸进程

转载 作者:行者123 更新时间:2023-12-03 11:01:51 31 4
gpt4 key购买 nike

在 iOS 应用程序上使用 Xcode 工作几天后,我注意到有超过 100 个僵尸进程闲逛。似乎每次我运行单元测试都有一个,并且可能每次我在模拟器中运行完整的应用程序时都有一个。这是一个示例(已清理和截断):

> ps -efj | grep $PRODUCT_NAME
502 2794 236 0 Wed12AM ?? 0:00.00 (MyProduct) me 2794 0 1 Z ??
502 2843 236 0 Wed01AM ?? 0:00.00 (MyProduct) me 2843 0 1 Z ??
502 2886 236 0 Wed01AM ?? 0:00.00 (MyProduct) me 2886 0 1 Z ??
...
502 13711 236 0 Thu11PM ?? 0:00.00 (MyProduct) me 13711 0 1 Z ??
502 13770 236 0 Thu11PM ?? 0:00.00 (MyProduct) me 13770 0 1 Z ??
502 14219 236 0 10:35AM ?? 0:00.00 (MyProduct) me 14219 0 1 Z ??
502 14280 236 0 10:38AM ?? 0:00.00 (MyProduct) me 14280 0 1 Z ??

倒数第二列中的 Z 表示它们是僵尸进程。第三列的236是父PID,属于我用户的 launchd在这种情况下。

请注意,某些流程是多天前的。在这段时间里,我退出并重新打开了 Xcode 几次。

有谁知道为什么会发生这种情况,或者这是否应该引起警报?

最佳答案

它们不会特别占用很多空间。

这似乎是 Xcode 机器不正确地杀死子进程的产物。

我有同样的问题,但我注意到僵尸属于,在我的情况下,ppid 271,它是以我的名义调用 launchd,而不是整个系统。

我很好奇如果我终止或关闭该进程会发生什么。

无论如何,注销可能会清除僵尸 .在我的书中,肯定会重新启动,但这是要避免的。

哦,那进展得很糟糕。 不要杀死你的launchd ,它会毫不客气地杀死您的 session ,但不会让您恢复它,例如给您一个登录屏幕。

我必须看看我是否因为停止 Xcode 而把僵尸留在了后面。似乎这里可能有一些愚蠢的事情。如果你的进程不等待一个 child ,它会变得僵化。如果 parent 死了,接下来的事情就会得到它,我想,在这种情况下是启动。 Launchd 应该 wait() 等待它,但也许这会让人感到困惑?

关于Xcode 在运行 iOS 测试/模拟器后离开僵尸进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13209743/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com