首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mac:在全球范围内设置OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES安全吗?

Mac:在全球范围内设置OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES安全吗?
EN

Stack Overflow用户
提问于 2022-09-07 15:42:44
回答 1查看 248关注 0票数 3

一些python进程崩溃的原因如下:

代码语言:javascript
运行
复制
objc[51435]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.

这些都是使用子shell、分叉线程等的进程。MacOS出于一些安全原因(我不知道是什么,而是人们就是这么说的)阻止了它们。

解决方案是禁用此安全检查

代码语言:javascript
运行
复制
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

对于已知的库和依赖项,以及在当前运行的shell中,这是很好的。

是否可以将其设置为全局环境变量,从而在本地mac机器中全局禁用此检查?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-15 23:02:37

苹果改变了fork()在High塞拉利昂的行为方式(>= 10.13)。

如果启用,OBJC_DISABLE_INITIALIZE_FORK_SAFETY变量将关闭其较新的ObjectiveC框架默认强制执行的即时崩溃行为,作为此更改的一部分。

您的问题“将其设置为全局环境变量是否安全”取决于您在此上下文中对“安全”的定义。

从某种意义上说你的电脑不会起火,这是安全的。

从某种意义上说,它是不安全的,因为它可能掩盖了崩溃信息,否则应用程序就会出现故障,并且可能会允许分叉炸弹类型的进程使计算机崩溃。

因此,如果您只有一个设置标志是绝对必要的用例,那么最好将其设置定位到该脚本/场景。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73638290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档