【问题标题】:ZSH keeps breaking with `zsh: fork failed:`ZSH 不断中断`zsh: fork failed:`
【发布时间】:2016-12-16 15:40:48
【问题描述】:

在过去几周(可能是我升级到 Sierra 之后),我在使用 ZSH 的 iTerm2 中不断遇到这个奇怪的问题。

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

_run-with-bundler:5: fork failed: resource temporarily unavailable
zsh: fork failed: resource temporarily unavailable

有人知道为什么会这样,我该如何解决?

【问题讨论】:

标签: zsh iterm2 oh-my-zsh


【解决方案1】:

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

您通常可以通过在 Mac OS 上运行 Activity Monitor 应用程序并导航到内存选项卡来检查内存泄漏。还有很多方法可以从 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

参考资料:

【讨论】:

    【解决方案2】:

    我遇到这个问题将近一周了,这让我发疯了,因为我每次都必须重新启动计算机。单身的。时间。

    就我而言,这是一个 cron 进程。我的进程每分钟都在运行,这似乎占用了很多内存。在我的案例中解决问题的步骤是。

    1. 运行 crontab -e 并降低 cron 进程的运行频率。
    2. 运行Activity Monitor.
    3. 如果Activity Monitor图标上下跳动打不开,请关闭一些程序。就我而言,我关闭了 Evernote 和 Slack。我认为这释放了一些内存,并打开了活动监视器。
    4. 单击Activity Monitor 中的Process Name 选项卡。
    5. 向下滚动,您可能会看到一个不断重复的过程。 (在这里,我看到了很多cron
    6. 您想停止所有这些进程。选择所有叛徒进程并在左上角单击x 将它们全部退出。 .
    7. 这解决了我的问题。

    我会在接下来的几天里观察。如果有任何变化,我会更新。否则,这意味着它有效。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      • 2014-01-16
      • 2012-05-21
      • 1970-01-01
      • 2021-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多