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

目前我只有2个。

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

任何帮助都将不胜感激!

图片附件:


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

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

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

$ taskkill /F /IM vim.exe

我看到的问题在窗口在git bash当我杀死我的git bash控制台不使用退出。我发现从windows任务管理器中杀死ssh-agent.exe任务可以解决这个问题。


重新安装git,现在工作正常。


我发现在任务管理器中杀死msys2终端可以解决这个问题


重新启动您的机器。

(其他答案对我没用。(我没有尝试重新安装。重新启动可能更快。)


对我来说(或者任何运行量角器的人,它可能会启动一个独立的Selenium/WebDriver服务器),我需要taskkill正在运行我的测试的特定WebDriver。

这是一个不同的论点: 或者你的chromedriver版本可能不同

taskkill /f /im chromedriver_2.34.exe

注意你的司机可能会有所不同: IEDriverServer*.*.*.exe vs chromedriver_*.**exe

您的驱动程序可能版本不同:chromedriver_2.34.exe vs chromedriver_2.33.exe

量角器在没有关闭自动/测试驱动浏览器的情况下退出后,这个问题变得更糟了(由于一个单独的问题,我还不明白)。当然,许多chromedriver任务仍然在运行,这就是为什么要杀死它们。


我试图杀死我所有的git终端在任务管理器解决了这个问题。 这对我也适用。 祝你好运。


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

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

现在应该没问题了。


打开你的任务管理器,搜索“sh”进程并杀死它们。 祝你好运


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


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


打开任务管理器,用name bash杀死进程,这对我有用。


为了简化工作(这种问题经常发生),在主目录下创建一个名为fixbash.bat的文件,并粘贴如下:

taskkill /f /IM ssh-agent.exe

当问题发生时,只需打开cmd并键入fixbash.bat来修复问题。

Or

如果你不想创建一个脚本,只需将taskkill命令粘贴到你的cmd。


打开任务管理器,找到bash.exe进程并杀死它。对我有帮助。


在我的情况下,我有visual studio代码运行和关闭它解决了这个问题。


从git bash启动的进程似乎确实有问题,就像@mamacdon在他对@Scott Newson的回答的评论中所建议的那样。

对我来说,如果我从带有代码的bash中启动了vscode,如果vscode的这个实例在原始bash仍在运行时启动了集成的git终端,就会出现问题。

该终端是在开始时启动还是稍后启动并不重要,只要它是在原始bash仍在运行时启动的。

在集成终端打开之前,攻击已经结束,没有发生。不区分退出和关闭bash通过窗口。在另一个旧bash窗口仍在运行时没有发生。

对我来说,处理它的方法是用exit或'Kill Terminal'关闭vscode中的终端(注意不要与'close pane'混淆),当然,关闭vscode本身。

如果您得到这个错误,请尝试记住您从bash中启动了什么并杀死它。如果其他答案适用于您,可能只是这些是由您的bash启动的东西,或者是由您从bash启动的进程启动的,它们以某种方式获得了您原始bash的子程序。


当退出git bash而不终止现有进程时,就会发生这种情况。试着杀死那些你从git bash中启动的进程。 我在git bash中运行节点进程,所以我杀死了所有节点进程 杀人的步骤

打开任务管理器 Goto详细信息标签 查找node.exe(您查找您的进程) 杀死它的每个节点进程 再次打开Git Bash


如果你正在使用Visual Studio Code,你找不到ssh-agent.exe,或者不能taskkill它,在打开Git Bash后你得到这个错误,只要去你的VSCode打开终端>新终端,然后按下垃圾桶图标(Kill Terminal)。例(1:bash)如果你有多个,那么就把他们都杀了,你应该是好的。


终于找到原因了。

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

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

它生成一个新进程。

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

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


在系统bash类型中:

ps

杀死任何看起来不好的进程:

kill -9 <ID>

为我工作。


只要重新启动您的机器,在重新启动我们的机器时,这个问题就解决了,试试吧。


Windows 10对我来说很管用:

1)以管理员身份打开CMD

2)类型:

taskkill /f /im git-bash.exe


3)如果有一个错误:进程“ssh-agent.exe”没有找到。然后:

类型:

tasklist

4)用“bash”或“git”这样的词查找并杀死每个进程(这可能是一个危险的解决方案,但一旦你找到了进程名,下次你就会知道了。)

taskkill /f /im ***.exe

在我的例子中,这与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命令继续。


我的情况下,解决方案是关闭Visual Studio代码-我有控制台运行太不注意-

关闭后一切恢复正常。 希望这能帮助到一些人。


对于windows,在任务管理器中杀死sh.exe。


在我的情况下,我需要杀死Git bash在Windows。 因此打开命令提示符并运行下面的命令

$ tasklist

它将列出所有正在运行的任务,然后需要使用以下命令杀死bash.exe任务

$ taskkill /F /IM bash.exe 

在我的例子中,我在任务管理器中有一个仍然打开的abd.exe。杀死它解决了这个问题。


在我的例子中,我需要杀死sh.exe taskkill /F /IM sh.exe


在我的例子中,问题是[git_install_dir]/etc/nsswitch.conf文件

我之前遵循了这里给出的说明: https://cygwin.com/faq.html faq.using.startup-slow。 但这反而导致了“无法分叉”错误。 我错误的nsswitch.conf文件是:

passwd: files
group: files

所以我恢复了文件,问题解决了。现在我的[git_install_dir]/etc/nsswitch.conf是:

passwd: files db
group: files # db
db_enum: cache builtin
db_home: env windows cygwin desc
db_shell: env windows # cygwin desc
db_gecos: env # cygwin desc

如果你打开了另一个VS code终端会话,关闭它再试一次,它会正常工作的。


当我编辑我的bash_profile并重新启动git bash时,这个问题开始了。

在VS Code中关闭终端会话后,问题得到了解决。从那以后,一切都按照预期进行。


在我的例子中,我在Git Bash中运行jupyter-notebook,并在没有关闭notebook的情况下关闭了终端。当我关闭所有运行的git bash终端并试图打开新终端时,这给了我一个错误:

Error: Could not fork child process: There are no available terminals (-1).

解决方案

taskkill /F /IM jupyter-notebook.exe

在那之后,我能够在git bash终端中运行命令。


这里的许多答案都建议他们需要杀死不同的进程,以便能够打开一个新的Git Bash终端。在我的情况下,有多个conhost.exe进程正在运行,我必须在成功打开另一个窗口之前杀死它们。

Perhaps more importantly, is why it happened. I think I know exactly what I did which led to this state. I noticed that when typing git log, if I then resize my Git Bash window, it would hang. (Pressing q would not exit the log and I could no longer type commands.) I ended up closing the window and opening another one. I was doing some testing of this repeatedly to see if I could figure out a solution to the freezing after resizing, and after doing this multiple times (probably around 10 times), I received the error in this question. The results of my testing are:

打开一个新的Git Bash窗口会启动以下过程:

conhost.exe git-bash.exe git.exe mintty.exe

现在,当你输入git log, 4个额外的进程打开:

bash.exe conhost.exe git.exe exe(只有当你的日志无法显示在一个屏幕上时,它才会保持打开状态)

当你关闭Git Bash时,这8个进程通常都消失了。但是,由于一个错误(我认为可能是在less.exe中),当您在查看日志时调整窗口大小时,Git Bash挂起。如果现在关闭窗口,8个进程中只有6个会关闭。less.exe和conhost.exe都保持活动状态。在我的例子中,最终建立了足够多的conhost.exe进程,并导致了导致Git Bash显示错误而无法启动的问题。

也就是说,我试图重复这个问题,但在20多次尝试后放弃了,当我处于问题状态时,这比我必须杀死的conhost进程要多。我怀疑这不是进程号,而是导致错误的一个或多个进程的状态。显然,由于其他答案提到关闭不同的进程,无法正确关闭和对抗Git Bash的“东西”可能会有所不同,这取决于您使用的工具。

注意,我使用的Git版本:2.37.1.windows.1。


我尝试了下面的方法,对我来说很有效:

杀死所有现有的git.exe 在Windows凭证管理器的通用凭证部分下添加了我的BitBucket凭证。