ZSH继续打破`zsh:fork failed:`

bod*_*ous 8 zsh iterm2 oh-my-zsh

在过去几周(可能自从我升级到Sierra)之后,我继续使用ZSH 在iTerm2中遇到这个奇怪的问题.

基本上,在我的常规工作流程中的间歇点,命令将停止正常运行并出现错误:

_run-with-bundler:5: fork failed: resource temporarily unavailable
zsh: fork failed: resource temporarily unavailable
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样,我怎么能解决它?

小智 2

此错误可能反映了工作流程中的内存泄漏。我最近遇到了一个自动化脚本的问题,发现在我的程序失败并显示此消息之前,内存使用量增加到了 100% 左右。

通常,您可以通过在 Mac OS 上运行“活动监视器”应用程序并导航到“内存”选项卡来检查内存泄漏。还有很多方法可以从 zsh 终端监控内存,例如,您可以使用 打印出进程数$ ps -eLf | wc -l,或者使用 检查可用内存free -m

如果是内存问题,最好的解决方法是重写您的工作流程以提高内存效率。另一个解决方法可能是增加计算机对其可以运行的进程的限制,例如通过将以下内容添加到您的etc/profile文件中;

if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi
Run Code Online (Sandbox Code Playgroud)

参考: