在过去的几周中(可能是因为我升级到Sierra),我一直在使用ZSH在iTerm2中遇到这个奇怪的问题。
基本上,在我的常规工作流程中的间歇点,命令将因错误而停止正常工作:
_run-with-bundler:5: fork failed: resource temporarily unavailable
zsh: fork failed: resource temporarily unavailable
有人知道为什么会这样吗,我该如何解决?
此错误可能反映工作流程中的内存泄漏。我最近在使用自动化脚本时遇到了问题,发现在程序出现此消息失败之前,内存使用率已增加到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
参考: