从终端和iTerm获取奇怪的行为"-bash:fork:资源暂时不可用"

Wil*_*cks 14 macos bash

当我打开iTerm时,我收到此消息:

上次登录时间:10月22日星期一12:20:25关于ttys002
-bash:fork:资源暂时不可用
-bash-3.2 $

当我打开终端时,我得到:

上次登录时间:10月22日星期一12:25:47 ttys002
-bash:fork:资源暂时不可用
Williams-MacBook-Pro:~william $

每当我尝试输入命令,如ls或cd时,我会收到以下错误消息:

-bash:fork:资源暂时不可用

所以我基本上什么也做不了.我试过谷歌搜索错误信息,但没有到达任何地方.如果有帮助的话,我在山狮的Mac上.谢谢.

编辑:

我跑了"ps"

获取进程状态,我得到这个作为终端的响应:

Williams-MacBook-Pro:~william $ ps
PID TTY TIME CMD
203 ttys000 0:00.08 -bash
254 ttys001 0:00.03 bash /Users/william/.rvm/scripts/wrapper ruby​​-1.9.3-p2
553 ttys001 0:00.03 bash /Users/william/.rvm/scripts/wrapper ruby​​-1.9.3-p2
785 ttys001 0:00.03 bash /Users/william/.rvm/scripts/wrapper ruby​​-1.9.3-p2
814 ttys001 0:00.48 -bash
1019 ttys001 0:00.03 bash /Users/william/.rvm/scripts/wrapper ruby​​-1.9.3-p2

和消息

bash /Users/william/.rvm/scripts/wrapper ruby​​-1.9.3-p2

继续在终端中列出几百次(不能发布它,因为它可能不适合这个盒子,它只是保持不变),所以我猜这个文件有一些粗略的事情.有谁知道如何解决这一问题?

Dan*_*zar 6

bash - 以及所有其他炮弹 - 使用 fork Unix系统上系统调用,以实际创建要从shell启动的进程.在这种情况下,bash告诉您系统调用以#结尾Resource temporarily unavailable,转换为errno值11,等于EAGAIN.

手册页 fork说明它可能设置errnoEAGAIN:

  • 它无法分配足够的内存来复制父页面表并为子节点分配任务结构.
  • 由于调用者的原因,无法创建新进程 RLIMIT_NPROC遇到资源限制.要超过此限制,该过程必须具有CAP_SYS_ADMINCAP_SYS_RESOURCE功能或功能.

在这种情况下,我认为第一个原因并不真实,除非你实际上是内存不足,所以我想你必须达到用户运行进程数量的极限.