gpt4 book ai didi

macos - 后台进程在 OS X 上显示为 "not responding"

转载 作者:搜寻专家 更新时间:2023-10-31 23:38:55 25 4
gpt4 key购买 nike

我正在尝试用我们的 OS X 应用程序解决这个奇怪的问题。

作为正常操作的一部分,它会启动一个长时间运行的后台进程——特别是一个用 node.js 编写的 Web 服务器。

运行一段时间后,后台进程在事件监视器中显示为“无响应”。

虽然它仍然正常运行,响应来自网络浏览器的请求并且没有占用高百分比的 CPU 或任何东西。

我想了解究竟是什么导致显示此状态,因为它首先甚至不是 GUI 应用程序。 OS X 究竟使用什么来确定命令行应用程序是否没有响应,如果它没有 Cocoa 事件循环?

是否可以以某种方式将其标记为后台进程,以便系统不会查询它以获取响应?

提前致谢。

更新:刚刚检查过,从命令行启动任务时似乎发生了同样的情况。是什么让后台应用程序在事件监视器上“无响应”?

最佳答案

好吧 sergio在他的评论中指出,这确实是 Node.JS 特有的东西。

负责我们应用的 Node.JS 部分的开发人员能够将问题的根源追溯到 Node.JS 中 process.title 属性的使用。

看起来像the implementation of process.title in libuv做了很多 Core Foundation 技巧来设置进程标题,所以这些可能通过 Activity Monitor 用来区分 Cocoa 应用程序和 CLI 应用程序的启发式方法将进程标记为 GUI 应用程序。

我们已经提交了 bug report在 libuv 上关于这个,但现在我们跳过 process.title,因为简单地设置它会导致服务器在几分钟后在事件监视器上显示为“无响应”。

更新:this commit 起,这已在 libuv 中修复.它仍然没有传播到 Node 版本。

关于macos - 后台进程在 OS X 上显示为 "not responding",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19457630/

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