【问题标题】:Cygwin error: "-bash: fork: retry: Resource temporarily unavailable"Cygwin 错误:“-bash:fork:重试:资源暂时不可用”
【发布时间】:2012-03-07 05:28:10
【问题描述】:

我最近在我的计算机上重新安装了 Cygwin,以便访问我缺少的几个命令行元素。我以前从未遇到过 Cygwin 的困难,但是在重新安装之后,在(几乎)输入的每个命令之后都会继续出现错误消息。例如:

-bash-4.1$ wc m1.txt
      3 [main] bash 2216 child_info_fork::abort: data segment start: parent(0x26D000) !=     child(0x38D000)
-bash: fork: retry: Resource temporarily unavailable
2013930  4027950 74968256 m1.txt

通常,该命令仍会运行(如上所示),但并非总是如此。有时,“错误”消息会连续出现多次(初始数字“3”随后将变为“4”或“2”,尤其是在我启动第二个 Cygwin 窗口时。

另外,当我启动 Cygwin 时,我会在提示之前收到以下消息:

      3 [main] bash 6140 child_info_fork::abort: data segment start: parent(0x26D000)     != child(0x36D000)
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable
-bash-4.1$

目前,我正在考虑是否再次卸载/重新安装 Cygwin 或只是忍受错误消息,但我很好奇是否可能存在我不知道的问题。

【问题讨论】:

  • 我发现了一些类似的问题here 你是否安装了保护软件/杀毒软件?如果是这样,您是否尝试禁用它只是为了测试,甚至卸载(参见链接)。也看看herehere

标签: cygwin


【解决方案1】:

(假设 Cygwin 安装在 C:\Cygwin):

  1. 打开任务管理器并关闭所有看起来与 Cygwin 相关的进程。
  2. 在 Windows 资源管理器中打开 C:\Cygwin\bin
  3. 验证此文件夹中是否存在 dash.exe、ash.exe、rebase.exe 和 rebase
    • 如果缺少其中任何一个,请重新运行 Cygwin 安装程序并选择 dash、ash 和 rebase 包
  4. 右键单击 C:\Cygwin 文件夹,取消选中只读(如果选中),然后按确定。
    • 当出现无法切换某些文件的错误时,选择“全部忽略”。等待此过程完成。
  5. 在 Windows 资源管理器中浏览到 C:\Cygwin\bin
  6. 右键单击 dash.exe,然后单击“以管理员身份运行”。命令提示符应该只显示$
  7. 键入/usr/bin/rebaseall -v,按回车键,然后等待该过程完成。
    • 如果遇到有关 Cygwin 进程运行的错误,请再次尝试步骤 1。如果这仍然不起作用,请将您的计算机重新启动到安全模式,然后重试这些步骤。
    • 一位评论者指出,根据您的设置,您可能需要输入 cd /usr/bin && ./rebaseall -v
  8. 再次尝试打开 Cygwin。

这个过程对我有用。我希望它也适用于你们。

来源:http://cygwin.wikia.com/wiki/Rebaseall

【讨论】:

  • 太棒了。在第7步中,因为PATH,我不得不先进入目录:cd /usr/bin`和./rebaseall -v
  • 在运行 rebaseall 时,它仍然显示相同的 fork 错误。
  • 如果您收到有关 Cygwin 进程运行的错误,您可以使用 windows cdmpowershell 转到 C:\Cygwin\bin,然后运行 ​​bash.exe /usr/bin/rebaseall -v。它将启动bash.exe,然后执行命令而不打开另一个术语。
  • 以管理员身份运行 cygwin 时出现此问题。上面的步骤'4'修复了它。
【解决方案2】:

我想在上面的答案中添加以下内容,因为这是我重新安装 Cygwin 后必须做的:

导航到“/usr/bin”目录(通常是C:\cygwin\bin)并右键单击,以管理员身份运行文件:dash.exe 然后,在 $ 提示符处键入以下内容,在每一行后按回车键:

cd /usr/bin/
/usr/bin/peflags * -d 1
/usr/bin/rebaseall -v

它的作用是,它将 dll 标记为“可重新设置基准”,然后重新设置它们的基准。除了上述文件(在以前的答案中)之外,您还必须拥有 peflags.exe。执行此操作后,您可能必须重新启动 Windows,并且您肯定需要确保没有属于 cygwin 的进程或服务正在运行。 (使用任务管理器,杀死所有相关进程,然后在服务选项卡下查找任何以 CYG 开头的服务并停止它。)

完成此操作后,我能够让 cygwin 运行,而不会出现任何关于 dll 被加载到错误地址(即 fork 错误等)的错误。

我希望这对其他人有所帮助,因为很难找到。

SOURCE: http://www.cygwin.com/faq.html#faq.using.fixing-fork-failures 
and the rebase README file.

【讨论】:

  • 我无法运行任何命令,所以这对我不起作用。没关系我尝试执行哪个可执行文件,我总是得到同样的错误
【解决方案3】:

为了在此处添加其他答案,我们遇到了同样的问题,但无法从 ash 或 dash shell 运行 rebase 命令。但是,当从 Windows cmd shell 启动命令时,以下操作有效。

cmd /c "C:\cygwin64\bin\ash.exe /usr/rebaseall -v"

-v 是获取详细输出

【讨论】:

  • 对我来说是 /bin/rebaseall
【解决方案4】:

我在这里找到了另一个信息: http://cygwin.com/ml/cygwin/2014-02/msg00531.html 您必须删除数据库 /etc/rebase.db* 并在“ash”窗口中执行: 标志 * -d 1 重新设置基准 它适用于我在 2 台服务器上。

【讨论】:

    【解决方案5】:

    我通过重新启动计算机解决了这个问题。可能安装了驱动程序更新并一直使用睡眠而不是关闭。

    【讨论】:

      【解决方案6】:

      在使用 cygiconv-2.dll 分叉加载 Cygwin 时遇到同样的问题,但在 Cygwin 终端中无法成功加载,但在关闭我的防病毒软件(特别是广告感知)后,问题解决了,Cygwin 工作正常。

      【讨论】:

        【解决方案7】:

        如果您使用的是 babun 的 Cygwin,在 rebaseall 之后,尝试通过在 Windows 命令提示符或 Windows 资源管理器中执行 .babun\cygwin\cygwin.bat 来启动 Cygwin。

        这对我有用(在启动 babun 的默认控制台时 - mintty 会导致 fork 错误)。

        【讨论】:

          【解决方案8】:

          我在 win10 上遇到错误,我试图在安装之前重新设置为 c:。 然后我看到安装程序正在将它安装到 c:/Users/myuser 所以我正在处理从 c:/Users/myuser 到 c:.badun 的所有文件 然后重启加打开badun.bat

          不知道这是不是明智的,它现在被复制了 XD...但是它再次起作用了。

          【讨论】:

            【解决方案9】:

            Rebaseing 对我没有帮助。除了其他人的建议之外,我注意到减少 PATH 环境变量的长度为我解决了这个问题(对于其他人,也可以从this 答案中看到)。

            【讨论】:

              【解决方案10】:

              这个问题本质上是间歇性的,当网络太慢而无法连接到 AWS 上的远程计算机时,我发现了这个问题。我有通过 Gitbash shell 运行的 Shell 脚本,它通过 ssh 连接到 AWS EC2 实例.....在大多数情况下,它运行正确,但 100 次中有 2 次进入此问题 bash: fork: retry: Resource temporary unavailable .... 从任务管理器中杀死 MSYS2 终端有助于克服这个问题.... 不利的一面是您需要从头开始运行脚本...

              【讨论】:

                【解决方案11】:

                我在 Windows 10 和 mobaxterm 应用程序(使用 cygwin) 上遇到了同样的问题,我尝试了此处列出的所有答案,但对我来说,解决方案是简单地删除“CryptoPro CSP”应用。

                【讨论】:

                  【解决方案12】:

                  升级到 Windows 10 后我开始遇到这个问题。到目前为止,我没有看到上述任何方法有效。
                  我注意到的是,如果您以管理员权限启动 cygwin(右键单击并说“以管理员身份运行”),那么它可以正常工作。
                  或者你以管理员身份打开cmd,然后从那里启动cygwin,然后它也运行正常。

                  【讨论】:

                    【解决方案13】:

                    只需重新安装cygwin并选择TCL并激活EXPECT

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2012-08-18
                      • 2012-10-12
                      • 2010-11-21
                      • 1970-01-01
                      • 1970-01-01
                      • 2021-02-21
                      • 2018-08-04
                      相关资源
                      最近更新 更多