我曾经有8个git bash终端同时运行。

目前我只有2个。

我以前没有见过这个错误,我不知道是什么原因造成的。

任何帮助都将不胜感激!

图片附件:


当前回答

终于找到原因了。

如果我们使用这样的代码(显式或隐式),即在.bashrc文件中

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

它生成一个新进程。

如果您不退出它,只是关闭窗口,则该进程仍在运行。所以每一个新的bash打开只是不断添加新的w/不处置旧的。

使用bash窗口时,只需按ctrl+d或键入exit来终止代理进程,就不会用光fork。

其他回答

在我的例子中,这与VS代码的使用有关。之前我使用git bash终端打开VS代码并执行

code .

然后关闭终端。

这个问题可以通过关闭所有打开的VS code窗口来解决。

当你有任何编辑器或IDE配置以git bash打开终端时,当IDE/IDE正在运行时,git bash将从“C:\Windows\System32\bash.exe”中启动bash,而任何其他试图从单独窗口打开bash的尝试都可能会崩溃。

最好的解决方案是关闭IDE/Editor bash并从一个新窗口打开,或者从IDE/Editor命令继续。

请在“任务管理器”窗口中找到ssh-agent进程。 停止或杀死ssh-agent进程后,错误将消失。

在谷歌组中发现了类似的问题和解决方案

我打开一个windows命令提示符并运行该命令 tasklist美元 当这些窗口被关闭并挂起可用的git bash shell窗口时,看起来好像我在我的git bash shell中所做的ssh连接没有被关闭。 这可能是一个危险的解决方案,但我从windows命令提示符运行 $ taskkill /F /IM ssh.exe 在这之后,一切似乎都恢复正常了。这可能不是孤儿进程的直接问题,但至少对我来说是有效的。

附加提示:你也可以杀死其他进程,例如:

$ taskkill /F /IM vim.exe

我用一个变通办法来解决这个问题:

关闭Git Bash窗口。 打开任务管理器。 找到“Git for Windows”进程。 杀死它。 打开Git Bash。

现在应该没问题了。

在windows git的最新版本中,任务管理器中要终止的进程是“GitExtensions.exe”。杀死了它,终端重新启动没有问题。