Git bash错误:无法派生子进程:没有可用的终端(-1)
我以前在同一时间运行过多达8个git bash终端 目前我只有两个以上 我以前从未见过这个错误,我也不明白是什么导致了它 任何帮助都将不胜感激 附图:Git bash错误:无法派生子进程:没有可用的终端(-1),git,terminal,git-bash,Git,Terminal,Git Bash,我以前在同一时间运行过多达8个git bash终端 目前我只有两个以上 我以前从未见过这个错误,我也不明白是什么导致了它 任何帮助都将不胜感激 附图: 在中发现了类似的问题和解决方案 我打开一个windows命令提示符并运行该命令 $ tasklist 看起来,当那些窗口关闭时,我在git bash shell中建立的ssh连接并没有关闭,而是挂起了可用的git bash shell窗口 这可能是一个危险的解决方案,但我从windows命令提示符运行 $ taskkill /F /IM ssh
在中发现了类似的问题和解决方案 我打开一个windows命令提示符并运行该命令
$ tasklist
看起来,当那些窗口关闭时,我在git bash shell中建立的ssh连接并没有关闭,而是挂起了可用的git bash shell窗口
这可能是一个危险的解决方案,但我从windows命令提示符运行
$ taskkill /F /IM ssh.exe
此后,一切似乎都恢复了正常。这可能不是孤立进程的直接问题,但至少对我来说是有效的
附加说明:您还可以终止其他进程,例如:
$ taskkill /F /IM vim.exe
当我在不使用exit的情况下关闭git bash控制台时,我在git bash中看到了windows上的问题。我发现从windows任务管理器中删除ssh-agent.exe任务可以解决此问题。重新安装了git,现在工作正常。我发现在任务管理器中删除msys2终端可以解决此问题。重新启动计算机 (其他答案对我不起作用。(我没有尝试重新安装。重新启动可能更快。)对于我(或者任何运行量角器的人,它可能会启动一个独立的Selenium/WebDriver服务器),我需要
taskkill
运行测试的特定WebDriver
那么就换一种说法:
或者您的chromedriver版本可能会有所不同
taskkill /f /im chromedriver_2.34.exe
请注意,您的驱动程序可能会有所不同:
IEDriverServer*.exe
vschromedriver\u***exe
您的驱动程序版本可能有所不同:chromedriver_2.34.exe
vschromedriver_2.33.exe
当量角器在没有关闭自动/测试驱动浏览器的情况下退出后,这个问题变得更严重(由于一个我还不明白的问题)。自然地,许多
chromedriver
任务仍在运行,这就是为什么要杀死它们。我试图在task manager中杀死所有git终端,解决了这个问题。
这对我也有用。
祝你好运。我用一个解决方法来解决这个问题:
现在应该可以了。打开任务管理器,搜索“sh”进程并杀死它们。
祝你好运在更新版本的git for windows上,任务管理器中要终止的进程是“GitExtensions.exe”。已终止,终端重新启动,没有问题。请在任务管理器窗口中找到ssh代理进程。
停止或终止ssh代理进程后,错误将消失。打开任务管理器并终止名为bash的进程,这对我来说很有效。为了简化工作(此问题经常发生),请在主目录中创建名为
fixbash.bat的文件,并粘贴以下内容:
taskkill/F/IM ssh agent.exe
出现问题时,只需打开cmd
并键入fixbash.bat
即可解决问题
或
如果不想创建脚本,只需将taskkill命令粘贴到cmd
中。打开任务管理器,找到bash.exe进程并将其杀死。在我的案例中有帮助。在我的案例中,我让visual studio代码运行并关闭它解决了问题。似乎确实是从git bash启动的进程的问题,就像@mamacdon在@Scott Newson对顶部答案的评论中建议的那样
对我来说,如果我使用code
从bash启动一个vscode,并且如果这个vscode实例在原始bash仍在运行时启动了一个集成的git终端,那么问题就出现了
不管终端是在开始时启动的还是以后启动的,只要它在原始bash仍在运行时启动就行
在集成终端打开之前关闭bash时没有发生。没有区分退出和通过windows关闭bash。在另一个较旧的bash窗口仍在运行时没有发生
处理这个问题的方法是,我用exit
或“Kill Terminal”(注意不要将其与“close pane”混淆)关闭vscode中的终端,当然,也可以关闭vscode本身
如果出现此错误,请尝试记住从bash启动的内容并将其杀死。如果其他答案对您有效,那么可能只是这些东西是由您的bash启动的,或者是由您从bash启动的进程启动的,它们以某种方式获得了原始bash的子版本。当您退出git bash而不终止现有进程时,就会发生这种情况。只需尝试杀死从git bash开始的那些进程。
我在git bash中运行节点进程,所以我杀死了所有节点进程
杀人的步骤
打开任务管理器
转到详细信息选项卡
查找node.exe(查找进程)
在每个节点进程中杀死它
再次打开Git Bash
如果您使用的是Visual Studio代码,但找不到ssh-agent.exe或无法taskkill它,并且在打开Git Bash后出现该错误,只需转到VSCode open Terminal>New Terminal,然后只需按垃圾箱图标(Kill Terminal)。e、 g(1:bash)如果你得到了多个,那么就把它们全部杀死,你应该是个好人 终于找到了原因
如果我们使用这样的代码(显式或隐式),即在.bashrc
文件中
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
它产生了一个新的过程
如果您不退出该进程并关闭窗口,则该进程仍在运行。因此,每次打开新的bash都会不断添加新的bash,而不处理旧的bash
使用bash窗口完成后,只需点击ctrl+d
或键入exit
即可杀死a
taskkill /f /im git-bash.exe
tasklist
taskkill /f /im ***.exe
code .
$ tasklist
$ taskkill /F /IM bash.exe
passwd: files
group: files
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