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

目前我只有2个。

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

任何帮助都将不胜感激!

图片附件:


当前回答

在我的例子中,问题是[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

其他回答

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

$ tasklist

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

$ taskkill /F /IM bash.exe 

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

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

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

在我的例子中,我在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终端中运行命令。

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

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

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

$ taskkill /F /IM vim.exe