【问题标题】:msysgit "fork: can't reserve memory for stack"?msysgit“fork:无法为堆栈保留内存”?
【发布时间】:2012-05-14 02:23:33
【问题描述】:

我已经在我的 Windows Server 2003 64 位机器上从这里 http://code.google.com/p/msysgit/downloads/list 安装了 msysgit Git-1.7.10-preview20120409.exe。我在设置过程中加入了“Git Bash here”。当我为 Windows 资源管理器中列出的任何文件夹选择“Git Bash here”时,我得到

C:\Program Files (x86)\Git\bin\sh.exe: * fork: 无法保留内存 对于堆栈 0x490000 - 0x690000,Win32 错误 0 0 [main] sh.exe" 1348 sync_with_child: child 2612(0xF8) 在初始化前死亡,状态码为 0x1 145 [main] sh.exe" 1348 sync_with_child: * 等待 longjmp 的子状态

sh.exe": fork: 资源暂时不可用 sh.exe"-3.1$

但是,开始菜单项 Git,Git Bash 并没有遇到同样的问题。相反,我得到了

欢迎使用 Git(版本 1.7.10-preview20120409)

运行 'git help git' 以显示帮助索引。运行'git帮助' 显示特定命令的帮助。

dmoore@DC1-2K3 ~ $

我认为 Windows Explorer shell 扩展应该使用 c:\windows\syswow64\cmd.exe 但我不知道如何告诉它这样做。

非常感谢任何建议, DaleEMoore@gMail.Com

【问题讨论】:

    标签: msysgit


    【解决方案1】:

    好的,看起来在 64 位 XP 和 Server 2003 上,64 位(默认)wscript 进程无法正确启动 bash,并且由于这是在注册表中设置菜单项的方式,因此导致当开始菜单快捷方式明确指定 syswow64 版本时出现此问题。

    解决方法是编辑注册表键HKEY_CLASSES_ROOT\Directory\shell\git_shell\command“默认”值。

    它可能看起来像wscript "C:\Program Files (x86)\Git\Git Bash.vbs" "%1"

    酌情将其更改为 C:\Windows\SysWOW64\wscript "C:\Program Files (x86)\Git\Git Bash.vbs" "%1" 之类的内容(如果您的 windows 目录在其他地方等)

    这应该作为 Windows 用户的 git 的错误提出,不幸的是,他们似乎关闭了错误跟踪器。

    【讨论】:

    • 我在msysgit/git上将它和修复程序列为issue 8
    • 我的拉取请求已合并 - 看起来您发现了另一个错误(关于文件关联),因此可能可以以类似的方式重新打开和修复。
    • @rpavlik 提到的 x64 中的 shell 脚本文件关联也已修复,请参阅 pull request/issue #26
    【解决方案2】:

    在 Windows XP 64 上

    [HKEY_CLASSES_ROOT\VBSFile\Shell\Open\Command]
    

    更改默认值 "%SystemRoot%\System32\WScript.exe "%1" %*"

    到 "%SystemRoot%\SysWOW64\WScript.exe "%1" %*"

    【讨论】:

    • 是的,正确的。同样,在 MinGW 下的 64 位 Windows 上运行 shell/Bash 脚本,从批处理文件开始类似于:%WINDIR%\SysWOW64\cmd.exe /C C:\PRG\MinGW-1_0_17\msys\1.0\bin\bash.exe "%SCRIPTFOLDER%\SomeBashScript.sh"。这将修复 fork: can't reserve memory for stack 0x4A0000 - 0x6A0000, Win32 error 0 错误...
    【解决方案3】:

    我在另一个项目中随机收到 mingw bash 的“* fork ...”错误消息(我猜 mingw 是 git 安装的 sh 的来源——它绝对是相同的错误消息)。我可以通过用win-bash替换shell来解决这个问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 2012-11-28
      • 2013-08-13
      • 2020-08-17
      相关资源
      最近更新 更多