Cygwin bash'无法分配内存'错误

时间:2013-03-11 16:23:22

标签: bash cygwin tee windows-server-2012

我有一个奇怪的问题。我在网络共享上有一个包含cygwin二进制文件的目录。这个cygwin目录曾经在dell poweredge盒子上,并作为IIS8中的虚拟目录安装。 Web服务会执行调用,然后执行bash脚本,如下所示:

\\poweredgeshare\cygwin\bin\bash --login -c "//poweredgeshare/mytools/myshellscript.sh 2>&1 | tee -a //poweredgeshare/logs/logoutput.txt"

这很好用,直到我们得到一个带有FS7600前端的新dell Equalogic文件服务器,并试图在Windows Server 2012上从IIS8执行该调用。通过这种组合,我现在得到以下错误:

/usr/bin/bash: //fs7600/mytools/myshellscript.sh: Cannot allocate memory

如果我在我的Windows 8机箱的IIS8上安装完全相同的fs7600共享作为虚拟目录,这就行了。所有Web调用都按预期运行。在将其部署到生产(服务器2012)计算机之后,它就会爆炸。

我发现,如果我删除了2>&1 | tee -a而只是使用>,那么它适用于所有情况。因此,发球管有一些问题导致问题。

我不是shell脚本专家 - 我没有写这个,我只是试图调试它并理解为什么完全相同的cygwin二进制文件调用完全相同的shell脚本但只是在一个新的文件系统上爆炸。

总结一下哪些有效,哪些无效:
- 旧文件共享适用于开发(Windows 8)和生产(服务器2012)环境
- 新文件共享适用于dev,但不适用于服务器2012

有没有人想过为什么会发生这种情况?

0 个答案:

没有答案