我曾经有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

其他回答

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

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

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

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

$ taskkill /F /IM vim.exe

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

taskkill /f /IM ssh-agent.exe

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

Or

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

对我来说(或者任何运行量角器的人,它可能会启动一个独立的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任务仍然在运行,这就是为什么要杀死它们。

终于找到原因了。

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

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

它生成一个新进程。

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

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