MacOS El Capitan 中 git 出现“fork:资源暂时不可用”

MacOS El Capitan 中 git 出现“fork:资源暂时不可用”

有时当我使用 Git 并且无法执行sudo命令时,它会报告

fork: Resource temporarily unavailable

这意味着什么?我该怎么办?

答案1

此 fork 错误通常意味着父程序无法执行一个或多个子进程,因为已达到资源限制,要么是允许的最大进程数(错误EAGAIN),要么是允许的最大内存量(ENOMEM错误)。Fork(2) 的手册页显示:

 Fork() will fail and no child process will be created if:

 [EAGAIN]  The system-imposed limit on the total number of processes under execution would
           be exceeded.  This limit is configuration-dependent.

 [EAGAIN]  The system-imposed limit MAXUPRC (<sys/param.h>) on the total number of pro-
           cesses under execution by a single user would be exceeded.

 [ENOMEM]  There is insufficient swap space for the new process.

对 OS X 施加限制的方式有多种:

  • 该命令设置的每个会话限制ulimit。您可以通过运行查看当前限制ulimit -a并设置新限制,例如,ulimit -u 1000将最大进程限制设置为 1000。此限制将一直保持到当前终端会话结束。
  • 系统限制是使用 launchd 在文件中设置的/Library/LaunchDaemons/limit.maxfiles.plist(仅限 OS X 10.9+)。

有关详细信息,请参阅这个答案

相关内容