一些python进程崩溃的原因如下:
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出于一些安全原因(我不知道是什么,而是人们就是这么说的)阻止了它们。
解决方案是禁用此安全检查
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
对于已知的库和依赖项,以及在当前运行的shell中,这是很好的。
是否可以将其设置为全局环境变量,从而在本地mac机器中全局禁用此检查?
发布于 2022-09-15 23:02:37
苹果改变了fork()
在High塞拉利昂的行为方式(>= 10.13)。
如果启用,OBJC_DISABLE_INITIALIZE_FORK_SAFETY
变量将关闭其较新的ObjectiveC框架默认强制执行的即时崩溃行为,作为此更改的一部分。
您的问题“将其设置为全局环境变量是否安全”取决于您在此上下文中对“安全”的定义。
从某种意义上说你的电脑不会起火,这是安全的。
从某种意义上说,它是不安全的,因为它可能掩盖了崩溃信息,否则应用程序就会出现故障,并且可能会允许分叉炸弹类型的进程使计算机崩溃。
因此,如果您只有一个设置标志是绝对必要的用例,那么最好将其设置定位到该脚本/场景。
https://stackoverflow.com/questions/73638290
复制相似问题