YFl*_*YFl 4 python macos multiprocessing
一些 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.
Run Code Online (Sandbox Code Playgroud)
这些是使用子 shell、分叉线程等的进程。MacOS 出于某些安全原因阻止它们(我不确定是什么,但人们就是这么说的)
解决方案是禁用此安全检查:
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
Run Code Online (Sandbox Code Playgroud)
这对于已知的库和依赖项以及当前运行的 shell 来说是很好的。
将其设置为全局环境变量,在我的本地 mac 计算机中全局禁用此检查是否安全?
小智 5
fork()Apple 改变了High Sierra (>= 10.13) 中的行为方式。
如果启用,该OBJC_DISABLE_INITIALIZE_FORK_SAFETY变量会关闭较新的 ObjectiveC 框架默认强制执行的立即崩溃行为,作为此更改的一部分。
您的问题“将其设置为全局环境变量是否安全”取决于您在这种情况下对“安全”的定义。
从某种意义上说,它是安全的,您的计算机不会起火。
从某种意义上说,它是不安全的,它可能会掩盖崩溃信息,否则这些信息将由出现问题的应用程序呈现,并且可能允许叉子炸弹类型的进程使您的计算机崩溃。
因此,如果您只有一个严格需要设置标志的用例,那么最好将其设置本地化为该脚本/场景。
| 归档时间: |
|
| 查看次数: |
2006 次 |
| 最近记录: |